This is the mail archive of the gcc-help@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: aligned attribute


It is certainly reasonable, but if it is true it means that the compiler is capable on linux, x86_64 to impose a 16 byte alignment on some object for all type of allocations. Then I would expect an __attribute__ ((aligned (16)) for a user defined type to be obeyed as well.

I haven't tested whether long doubles are actually allocated on 16 byte boundaries in all case (global, auto and dynamic), mainly because the tests would be inconclusive, unless you see an alignment < 16.

I just mentioned the data point to see if it did say anything to GCC developers.


On Dec 21, 2006, at 4:23 PM, Tim Prince wrote:


Maurizio Vitale wrote:
Thanks. Now to add to my confusion, on my system __alignof(long double) returns 16, which I presume means that all allocation, static, dynamic and automatic for long double objects are 16 byte aligned.

This is a reasonable choice, that long doubles would be aligned for good performance, unless the alignment is over-ridden by a packed or reduced alignment specification.





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