Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 4 May 2014 13:42:05 +0200
From: Paweł Dziepak <>
To: Rich Felker <>
Subject: Re: [PATCH] add definition of max_align_t to stddef.h

2014-05-01 0:43 GMT+02:00 Rich Felker <>:
> On Wed, Apr 30, 2014 at 11:42:51PM +0200, Szabolcs Nagy wrote:
>> * Pawel Dziepak <> [2014-04-30 22:23:01 +0200]:
>> >
>> > +TYPEDEF union { long double ld; long long ll; } max_align_t;
>> this is wrong
>> - ld and ll identifiers are not reserved for the implementation
>> (you could name them _ld, _ll or __ld, __ll etc)
> It's also not clear to me why this should go in alltypes.h. Unless it
> needs to be arch-specific, it could go directly in stddef.h.
>> and see previous max_align_t discussion
>> - compiler implementations are non-conforming on some platforms
>> (_Alignof returns inconsistent results for the same object type so
>> reasoning about alignments is problematic, there are exceptions
>> where this is allowed in c++11 but not in c11)
> Is there a bug filed against gcc yet?

The behavior in GCC 4.9 has changed. _Alignof(long long) now is always
4. _Alignof(max_align_t) remains 8 though. Because of this, the
solution I proposed in earlier post doesn't work anymore
(_Alignof(max_align_t) would be 4 if GCC 4.9 didn't complain that
_Alignas(long long) reduces alignment of long long which is weird but
probably doesn't matters much in this discussion) and I looks like the
only option is to use __attribute__((__aligned__(...))). I don't think
there is reason for me to send another version of this patch since
there has already been sent a patch which defines max_align_t in such


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.