1// { dg-do assemble  }
2
3enum E { e };
4
5template <const E* ep>
6struct S1
7{
8  static const char* s;
9};
10
11template <int D>
12struct S2 {};
13
14template <>
15struct S2<1>
16{
17  static E es[1];
18};
19
20struct S3
21{
22  typedef S1<S2<1>::es> S3_Type;
23};
24
25E S2<1>::es[1] = {e};
26
27template <>
28const char* S1<S2<1>::es>::s = "abc";
29