http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56979
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Sat, 3 Aug 2013, rearnsha at gcc dot gnu.org wrote: > Although the compiler shouldn't ICE, it's arguable that passing over-aligned > values by value to functions is not supportable (c11, for example, does not > support over-aligning function arguments even though it does permit > over-aligning some other objects) and that this case is really an ICE on > invalid. I see no such restriction in C11. You can't use _Alignas directly on a parameter, but if you have somehow constructed an over-aligned type (and, as I noted on the WG14 reflector some time ago, and more recently in N1731, there is no syntax for doing so despite the discussion of such types in C11), being a struct or union with an alignment specifier used therein, nothing I see prohibits passing it to a function - it's simply implementation-defined whether that is a context in which such a type is supported.