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