On Tue, 6 Sep 2016, Jason Merrill wrote: > On Tue, Sep 6, 2016 at 11:16 AM, Joseph Myers <jos...@codesourcery.com> wrote: > > GCC is supposed to support all mallocs that produce results aligned to at > > least MALLOC_ABI_ALIGNMENT (which may be smaller than the alignment of > > max_align_t). > > I've just been running into problems with MALLOC_ABI_ALIGNMENT being > smaller than max_align_t, which doesn't make sense to me; the C11 > passage Florian quoted says that malloc needs to support all > fundamental alignments, i.e. max_align_t.
The point is that GCC supports being used in nonconforming implementations as well as in conforming ones, and in nonconforming contexts people may e.g. interpose malloc with a version that yields sufficient alignment for common cases but may not use 16-byte alignment, or may not align small objects as much as larger ones (whereas ISO C requires all alignments, even 1-byte ones, be aligned as much as max_align_t). Of course if users of such an interposed malloc try to allocate memory for _Float128 with it, they can expect that to break. -- Joseph S. Myers jos...@codesourcery.com