c++/7585: Attributes for nested typedef-name ignored
Wolfgang Bangerth
bangerth@ticam.utexas.edu
Thu Oct 31 07:20:00 GMT 2002
> | 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
More information about the Gcc-bugs
mailing list