extend.texi: add note about reserved ctor/dtor priorities

gcc/Changelog:

	* doc/extend.texi: Add note about reserved priorities
	to the constructor attribute.

Signed-off-by: Jonathan Yong <10walls@gmail.com>
This commit is contained in:
Jonathan Yong 2021-08-25 16:36:14 +00:00
parent 0012f921b6
commit d4b782985b

View File

@ -2787,16 +2787,16 @@ On some targets the attributes also accept an integer argument to
specify a priority to control the order in which constructor and
destructor functions are run. A constructor
with a smaller priority number runs before a constructor with a larger
priority number; the opposite relationship holds for destructors. So,
if you have a constructor that allocates a resource and a destructor
that deallocates the same resource, both functions typically have the
same priority. The priorities for constructor and destructor
functions are the same as those specified for namespace-scope C++
objects (@pxref{C++ Attributes}). However, at present, the order in which
constructors for C++ objects with static storage duration and functions
decorated with attribute @code{constructor} are invoked is unspecified.
In mixed declarations, attribute @code{init_priority} can be used to
impose a specific ordering.
priority number; the opposite relationship holds for destructors. Note
that priorities 0-100 are reserved. So, if you have a constructor that
allocates a resource and a destructor that deallocates the same
resource, both functions typically have the same priority. The
priorities for constructor and destructor functions are the same as
those specified for namespace-scope C++ objects (@pxref{C++ Attributes}).
However, at present, the order in which constructors for C++ objects
with static storage duration and functions decorated with attribute
@code{constructor} are invoked is unspecified. In mixed declarations,
attribute @code{init_priority} can be used to impose a specific ordering.
Using the argument forms of the @code{constructor} and @code{destructor}
attributes on targets where the feature is not supported is rejected with