On 12/13/14 2:32 PM, Joerg Sonnenberger wrote:
On Sat, Dec 13, 2014 at 09:15:53PM +0000, mats petersson wrote:
So, what kind of documentation would you like to see?

The GCC docs here:
https://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html

say: GCC also provides a target specific macro __BIGGEST_ALIGNMENT__, which
is the largest alignment ever used for any data type on the target machine
you are compiling for.

How does that interact with codegen flags like -mno-sse2? What about
support for new target types in later version -- from the writing it is
nowhere clear that this macro is not fixed.
The gcc page on it says that it *can* change with codegen flags, and I agree, it says nothing about when it will change, nor how flags affect it.

Given that, my feeling is that Mats' intent on use of this macro is wrong. __BIGGEST_ALIGNMENT__ should be used in the same way that the int*_fast_t types are: where you don't care about the actual alignment, but you just want an alignment that is 'fast' on the platform.


"we discussed some code that had accidentally aligned it's sub-allocated block to 4 bytes for a 64-bit type, and got a unaligned access trap."

For that, you should probably be using __alignof__.


Jon


Joerg
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits


--
Jon Roelofs
[email protected]
CodeSourcery / Mentor Embedded
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to