// { dg-do compile { target c++11 } } template struct X { using layout_type __attribute ((aligned(__alignof(double)))) = char[sizeof(T)]; layout_type data; }; template struct Y { using layout_type __attribute ((aligned(__alignof(T)))) = char[sizeof(T)]; layout_type data; }; template struct Z { using layout_type __attribute ((aligned(__alignof(T)))) = char[sizeof(T)]; struct Z2 { layout_type data; } in; }; template struct A; template struct A { using layout_type __attribute ((aligned(__alignof(T)))) = char[sizeof(T)]; layout_type data; }; template struct StaticAssert; template<> struct StaticAssert {}; StaticAssert<__alignof(X) == __alignof(double)> d1; StaticAssert<__alignof(Y) == __alignof(double)> d2; StaticAssert<__alignof(Z) == __alignof(double)> d3; StaticAssert<__alignof(A) == __alignof(double)> d4;