1 // { dg-do compile { target c++11 } }
2 
3 template<typename T> struct S1
4 {
5     enum E : int;   // { dg-message "previous definition" }
6     enum E : T;     // { dg-error "different underlying type" }
7 };
8 template struct S1<int>; //ok
9 
10 template<typename T> struct S2
11 {
12     enum E : int;   // { dg-message "previous definition" }
13     enum E : T;     // { dg-error "different underlying type" }
14 };
15 template struct S2<short>;
16 
17 template<typename T> struct S3
18 {
19     enum E : int;   // { dg-message "previous definition" }
20     enum E : short; // { dg-error "different underlying type" }
21 };
22 
23