This is the mail archive of the
mailing list for the GCC project.
Re: x86_64: Should the -mavx* options affected __alignof__ (max_align_t)?
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: GCC <gcc at gcc dot gnu dot org>
- Date: Thu, 2 Apr 2015 16:45:15 +0000
- Subject: Re: x86_64: Should the -mavx* options affected __alignof__ (max_align_t)?
- Authentication-results: sourceware.org; auth=none
- References: <55105B5B dot 50107 at redhat dot com> <alpine dot DEB dot 2 dot 10 dot 1503231831300 dot 14930 at digraph dot polyomino dot org dot uk> <55105E53 dot 8020002 at redhat dot com> <551CFD38 dot 9040200 at redhat dot com>
On Thu, 2 Apr 2015, Florian Weimer wrote:
> On 03/23/2015 07:41 PM, Florian Weimer wrote:
> > Ah, I should have looked at what max_align_t actually meant. With these
> > semantics, the name is a bit confusing. I agree that requiring 64 byte
> > alignment from malloc does not make much sense. Thanks.
> Follow-up question: Can malloc return a pointer which is not aligned to
> _Alignof (max_align_t)?
> This happens with most mallocs on x86_64 for sizes of 8 or less, for
> which these mallocs only provide an alignment of 8.
> DR445 does not seem to have reached consensus on that point.
I see no lack of consensus.
"The proposed changes have raised no concerns and so the committee has
agreed to use them as the following Proposed Technical Corrigendum.", and
nothing regarding alignment for small allocations has changed since
DR#075. "suitably aligned so that it may be assigned to a pointer to any
type of object with a fundamental alignment requirement" (unchanged
wording in 7.22.3) implies being suitably aligned for all types with
fundamental alignment requirements; otherwise such assignment would result
in undefined behavior at runtime.
Joseph S. Myers