x86_64: Should the -mavx* options affected __alignof__ (max_align_t)?
Florian Weimer
fweimer@redhat.com
Thu Apr 2 11:32:00 GMT 2015
On 04/02/2015 01:06 PM, H.J. Lu wrote:
> On Thu, Apr 2, 2015 at 1:46 AM, Florian Weimer <fweimer@redhat.com> wrote:
>> On 04/02/2015 10:40 AM, Andrew Haley wrote:
>>
>>> So, max_align_t is an object type, and therefore malloc returns a
>>> pointer suitable for max_align_t.
>>
>> Then the GCC definition of max_align_t is incorrect, it should be 8 on
>> x86_64 GNU/Linux, because traditionally, that's what mallocs implement
>> for this architecture. (dlmalloc in glibc is an exception.)
>>
>
> x86-64 psABI specifies that a memory >= 16 bytes is 16-byte aligned.
> If malloc doesn't do it, it is a broken.
My concern is different. I think _Alignof (max_align_t) == 16 (as it is
in GCC now) implies that malloc return values for sizes less than 16
bytes are 16-byte-aligned, too, which is not required by the x86-64 psABI.
--
Florian Weimer / Red Hat Product Security
More information about the Gcc
mailing list