@@ -121,11 +121,12 @@ def InitPriorityDocs : Documentation {
121
121
In C++, the order in which global variables are initialized across translation
122
122
units is unspecified, unlike the ordering within a single translation unit. The
123
123
``init_priority`` attribute allows you to specify a relative ordering for the
124
- initialization of objects declared at namespace scope in C++. The priority is
125
- given as an integer constant expression between 101 and 65535 (inclusive).
126
- Priorities outside of that range are reserved for use by the implementation. A
127
- lower value indicates a higher priority of initialization. Note that only the
128
- relative ordering of values is important. For example:
124
+ initialization of objects declared at namespace scope in C++ within a single
125
+ linked image on supported platforms. The priority is given as an integer constant
126
+ expression between 101 and 65535 (inclusive). Priorities outside of that range are
127
+ reserved for use by the implementation. A lower value indicates a higher priority
128
+ of initialization. Note that only the relative ordering of values is important.
129
+ For example:
129
130
130
131
.. code-block:: c++
131
132
@@ -136,10 +137,16 @@ relative ordering of values is important. For example:
136
137
``Obj2`` will be initialized *before* ``Obj1`` despite the usual order of
137
138
initialization being the opposite.
138
139
140
+ Note that this attribute does not control the initialization order of objects
141
+ across final linked image boundaries like shared objects and executables.
142
+
139
143
On Windows, ``init_seg(compiler)`` is represented with a priority of 200 and
140
144
``init_seg(library)`` is represented with a priority of 400. ``init_seg(user)``
141
145
uses the default 65535 priority.
142
146
147
+ On MachO platforms, this attribute also does not control the order of initialization
148
+ across translation units, where it only affects the order within a single TU.
149
+
143
150
This attribute is only supported for C++ and Objective-C++ and is ignored in
144
151
other language modes. Currently, this attribute is not implemented on z/OS.
145
152
}];
0 commit comments