https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114819
Bug ID: 114819
Summary: 'constructor', 'destructor' function attributes vs.
function signature
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Keywords: diagnostic, documentation
Severity: minor
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: tschwinge at gcc dot gnu.org
Target Milestone: ---
In context of PR114818 "'constructor', 'destructor' function attributes vs.
'extern'", I also found that there's no user documentation that the
constructor, destructor function signature has to match 'void FN(void)', and
GCC currently doesn't check/diagnose this.
Should we update 'gcc/doc/extend.texi' for this, and implement a diagnostic
(warning or even error, enabled by default)?
I found that we only document in 'gcc/target.def':
/* Output a constructor for a symbol with a given priority. */
DEFHOOK
(constructor,
"If defined, a function that outputs assembler code to arrange to call\n\
the function referenced by @var{symbol} at initialization time.\n\
\n\
Assume that @var{symbol} is a @code{SYMBOL_REF} for a function taking\n\
no arguments and with no return value. [...]
Note "a function taking no arguments and with no return value".