From: Jonathan Yong <10walls@gmail.com> Date: Wed, 25 Aug 2021 16:36:14 +0000 (+0000) Subject: extend.texi: add note about reserved ctor/dtor priorities X-Git-Tag: basepoints/gcc-13~5158 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d4b782985b4adb86ebcccff697366136321d45b2;p=thirdparty%2Fgcc.git 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> --- diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 49df8e6dc38a..251a10302b4f 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -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