https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53182

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Vincent Lefèvre from comment #0)
> Attributes without underscores can conflict with the ISO C standard. For
> instance, if the C11 <stdnoreturn.h> header is included, this breaks GCC's
> 
>   __attribute__ ((noreturn))
> 
> (such problems may occur in particular if different libraries, with
> different expectations, are used). To avoid such a clash, only the
> __noreturn__ version should be used. Other attributes without __ may also
> lead to conflicts with a future C standard.

But *any* identifier can conflict with a macro from a future C standard. Why
are these attributes special?

I understand that there's a specific conflict for __attribute__((noreturn)) and
<stdnoreturn.h> but I don't see why that implies all other attribute names have
problems that are significantly worse than for any other identifier.

Reply via email to