On Wed, 14 Jun 2017, Richard Biener wrote:

> >> are you sure this is needed?  This seems to be solely arguments to
> >> attributes.
> >
> > It's need for cases like:
> >  __intN_t (8, __QI__);
> 
> But __QI__ is not processed in lookup_attribute, is it?  So canonizing that
> looks unrelated?  I didn't see similar handling in the C FE btw (but
> maybe I missed it).

It's not clear to me that there is automatically a rule that where 
identifiers are arguments to attributes, they must follow this rule about 
foo and __foo__ being equivalent.

Specifically: c-attribs.c:attribute_takes_identifier_p says that the 
cleanup attribute takes an identifier (a function name).  But it's 
certainly the case that the exact function named there must be used; foo 
and __foo__ as cleanup attribute arguments are not equivalent.  (You could 
argue cleanup should take an expression, with an error then being given if 
that doesn't evaluate to a function designator.)

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to