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

--- Comment #6 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> ---
(In reply to Jonathan Wakely from comment #5)
> 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.

This comes from "That would be a bug in the other package for using noreturn
instead of __noreturn__, and should be fixable." at
http://lists.gnu.org/archive/html/bug-gnulib/2012-05/msg00024.html but I don't
know on what this is based.

This is not specific to noreturn, because in C99, it didn't exist yet (I mean
that in future C standards, you could have similar problems with other
attributes).

Also, note that identifiers that are not reserved should not be used, because
they could be defined as macros by the developer, who has not tested his code
with GCC (I'm saying GCC here, but this applies to any compiler).

Reply via email to