On Thu, 9 Jun 2005, DJ Delorie wrote:

> 
> > "section" attributes are presently storage-class-like (similar to
> > "static") and only work on declarations.
> 
> Ok, I see that we set the "apply to decl" bit for "section".  I guess
> the question is - why?  Would it be more consistent to keep track of
> where it is given, and complain if it is applied to the type instead
> of the decl?
> 
> Or is it as simple as "because the programmer expects it this way" ? ;-)

The various exceptions of the form "if an attribute is applied to the type 
of a decl which can only apply to a decl, then apply it to the decl" are 
there because they represent forms used by existing code.

In principle I'd prefer storage class attributes to be in the declaration 
specifiers (and nowhere else), and attributes on types to be after "*" or 
"(" in nested declarators (and nowhere else), and attributes on 
struct/union/enum definitions to be after the struct/union/enum keyword, 
and attributes on labels not to be there at all.  But though these 
positions are syntactically cleaner and less ambiguous, most code and GCC 
documentation uses the less clear do-what-I-mean positions instead.

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/
    [EMAIL PROTECTED] (personal mail)
    [EMAIL PROTECTED] (CodeSourcery mail)
    [EMAIL PROTECTED] (Bugzilla assignments and CCs)

Reply via email to