[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070705165347.GN21478@ftp.linux.org.uk>
Date: Thu, 5 Jul 2007 17:53:47 +0100
From: Al Viro <viro@....linux.org.uk>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-sparse@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC] bloody mess with __attribute__() syntax
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.
So they have fsckloads of existing code relying on that parsing. BTW,
they want things like
int *p __attribute__((section(...)))
and that's a position where qualifiers just do not appear. Again, existing
codebase (and quite a bit of that is present in the kernel, BTW).
I rather doubt that they'll be able to kill that off and making parsing
dependent on the nature of attribute is not a viable option either -
think of __attribute__((this,that)) where "this" is storage-class-like
and "that" - qualifier-like.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists