lkml.org 
[lkml]   [2007]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-07-05 18:57    [W:4.184 / U:0.584 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site