This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++/7585: Attributes for nested typedef-name ignored


The following reply was made to PR c++/7585; it has been noted by GNATS.

From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: Gabriel Dos Reis <gdr@integrable-solutions.net>
Cc: gcc-bugs@gcc.gnu.org, <gcc-gnats@gcc.gnu.org>
Subject: Re: c++/7585: Attributes for nested typedef-name ignored
Date: Thu, 31 Oct 2002 09:21:27 -0600 (CST)

 > |     I can see this as well, but I imagine the syntax is wrong:
 > |     shouldn't it be
 > |         typedef struct { } __attribute__((__aligned__(__alignof__(int)))) Y;
 > |     
 > |     instead of
 > |     
 > |         typedef struct { } Y __attribute__((__aligned__(__alignof__(int))));
 > |     
 > |     ??
 > 
 > Maybe.  But then, I think __alignof__(Y) should return
 > __alignof__(int) if the attribute is being applied to Y.
 > 
 > Said differently, what do you envision for the "right" syntax for
 > 
 >    typedef unsigned char type[sizeof(int)] 
 >              __attribute__((__aligned__(__alignof__(int))));
 
 I have no clue. I think that the weird C declaration syntax is probably 
 just not suited for the application of attributes.
 
 And maybe it's simpler to understand if you make up the typedef in steps, 
 say
   typedef unsigned char array[...]
   typedef aligne_array __attribute__(...) aligned_array;
 (or the attributes somewhere else).
 
 I think it would help to have a formal specification of attribute 
 placement somewhere. Although it would probably be so complicated that 
 nobody would want to read it...
 
 Regards
   Wolfgang
 
 -------------------------------------------------------------------------
 Wolfgang Bangerth              email:           bangerth@ticam.utexas.edu
                                www: http://www.ticam.utexas.edu/~bangerth
 
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]