https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65122

--- Comment #5 from Benoit Jacob <jacob.benoit.1 at gmail dot com> ---
So while the standard says that over-aligned types dont have to be supported,
it also says in 3.11/9 in
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf that:

> If a request for a specific extended alignment in a specific context is not 
> supported by an implementation,
> the program is ill-formed. Additionally, a request for runtime allocation of 
> dynamic storage for which the
> requested alignment cannot be honored shall be treated as an allocation 
> failure

In my naive understanding, that sounds like if over-aligned allocation is not
supported then it must be an allocation failure (i.e. not fail silently to
honor alignment).

That's relevant because failing all over-allocated allocations is probably not
something that a compiler could do in the real world (that would break a lot of
existing software) and so this 3.11/9 clause might then be de-facto forcing
compilers to support over-allocated allocation.

What do you think? How else would you interprete 3.11/9?

Reply via email to