| // { dg-do compile } | |
| // { dg-options "-O2 -Wstrict-aliasing" } | |
| template<unsigned _Len, unsigned _Align> | |
| struct aligned_storage | |
| { | |
| union type | |
| { | |
| unsigned char __data[_Len]; | |
| struct __attribute__((__aligned__((_Align)))) { } __align; | |
| }; | |
| }; | |
| aligned_storage<sizeof(int), __alignof__(int)>::type storage; | |
| int main() | |
| { | |
| *reinterpret_cast<int*>(&storage) = 42; // { dg-bogus "break strict-aliasing" } | |
| } |