// { dg-do assemble } enum E { e }; template struct S1 { static char* s; }; template struct S2 {}; template <> struct S2<1> { static E es[1]; }; struct S3 { typedef S1::es> S3_Type; }; E S2<1>::es[1] = {e}; template <> char* S1::es>::s = "abc";