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

--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #7)
> (a) given that the __attribute__((xyzzy)) etc. versions are in pretty wide
> use "in the wild".
> 
> (b) Section 6.33  of the current GCC manual doesn't really mention the
> __xxxx__ versions and the examples throughout the section use undecorated
> versions (the only example with __xxxx__ seems to be __target__). This
> section specifically states the attributes may be identifiers or reserved
> words.

Right, I think it's only mentioned at
https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html

> ... we might implement some compatibility warning (again in the future) - or
> perhaps at least add a note to the manual.

I'm not sure a waning is appropriate. Users are welcome to use the non-uglified
attributes, it's their responsibility to ensure their own attributes don't
clash with their own macros. 


(In reply to howarth from comment #8)
> Certainly getting the current GCC manual in sync with this new restriction
> and emitting a clear warning in the gcc 5.0 release compiler would get the
> issue more traction with upstream developers.

There is no new restriction. 

The failing test is only intended to check that libstdc++ is consistent about
using the uglified attributes. Anything outside libstdc++ can do whatever it
wants. IMHO the C standard library headers should use the reserved names, but
the GCC manual is not the right place to document how to implement the C
standard library.

Reply via email to