Re: [RFC] bloody mess with __attribute__() syntax

Chris Lattner
2007-07-05T17:19:20Z

On Thu, 5 Jul 2007, Al Viro wrote:
> On Thu, Jul 05, 2007 at 09:41:55AM -0700, Linus Torvalds wrote:
>>> Note that gcc rules for __attribute__() (and that's the only source
>>> of rules we _have_ for the damn thing) clearly say that
>>> int __user *p;
>>> is the same thing as
>>> int *__user p;
>>
>> Quick question: is there some reason why we have to honor the crazy gcc
>> rules, and cannot try to convince gcc people that they are insane?
>
> AFAICS, they started with storage-class-like attributes. Consider e.g.
> always_inline or section; these are not qualifiers at all and you want
> to have
> static __attribute__((always_inline)) int foo(int *p);
> interpreted with attribute applied to foo, not to its return type.

This is true, but I don't think this is related. attributes in GCC can
apply either to types or two decls. In this case, the always_inline
attribute is being applied to the decl, but other attributes could be
applied to the return type.

-Chris

--