1 // { dg-do compile }
2 // { dg-options "-std=c++0x" }
3 
4 template<typename T> struct S1
5 {
6     enum E1 : int;
7     enum E1 : T;
8     enum class E2 : int;
9     enum class E2 : T;
10 };
11 
12 template<typename T> enum S1<T>::E1 : int { e1 };
13 template<typename T> enum class S1<T>::E2 : T { e2 };
14 
15 S1<int>::E1 x1 = S1<int>::e1;
16 S1<int>::E1 x11 = S1<int>::E1::e1;
17 S1<int>::E2 x2 = S1<int>::E2::e2;
18 
19 enum S1<int>::E1 ex1 = S1<int>::e1;
20 enum S1<int>::E1 ex11 = S1<int>::E1::e1;
21 enum S1<int>::E2 ex2 = S1<int>::E2::e2;
22