Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix incorrect use of scope #189

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions abi.html
Original file line number Diff line number Diff line change
Expand Up @@ -2252,15 +2252,15 @@ <h3><a href="#array-cookies"> 2.7 Array Operator <code>new</code> Cookies </a></
<h3><a href="#guards"> 2.8 Initialization Guard Variables </a></h3>

<p>
If a function-scope static variable or a static data member with vague
If a block-scope static variable or a static data member with vague
linkage (i.e., a static data member of a class template) is
dynamically initialized, then there is an associated guard variable
which is used to guarantee that construction occurs only once. The <a
href="#mangling-special-guards">guard variable's name</a> is mangled
based on the mangling of the guarded object name. Thus, for
function-scope static variables, if multiple instances of the function
block-scope static variables, if multiple instances of the function
body are emitted (e.g., due to inlining), each function uses the same
guard variable to ensure that the function-scope static is initialized
guard variable to ensure that the block-scope static is initialized
only once. Similarly, if a static data member is instantiated in
multiple object files, the initialization code in each object file
will use the same guard variable to ensure that the static data member
Expand Down Expand Up @@ -3984,8 +3984,8 @@ <h5><a href="#ctor-order-motivation"> 3.3.5.1 Motivation </a></h5>

<p>
<i>
The only requirement of the C++ Standard with respect to file scope
object construction order is that file scope objects
The only requirement of the C++ Standard with respect to namespace scope
object construction order is that namespace scope objects
in a single object file are constructed in declaration order.
However, building large programs sometimes requires careful attention
to construction ordering for objects in different object files,
Expand Down Expand Up @@ -4969,7 +4969,7 @@ <h5><a href="#mangling-special-ctor-dtor"> 5.1.4.3 Constructors and Destructors
<h5><a href="#mangling-special-guards"> 5.1.4.4 Guard Variables </a></h5>

<p>
Initialization of certain objects with static storage duration
Initialization of certain variables with static storage duration
requires a <a href="#guards">guard variable</a> to prevent multiple
initialization. The mangled name of a guard variable is the name of
the guarded variable prefixed with <code>GV</code>.
Expand Down