1 // { dg-do compile { target c++11 } }
3 //This error is diagnosed at instantiation time
4 template<typename T> struct S1
6 enum E : T; // { dg-message "previous definition" }
7 enum E : int; // { dg-error "different underlying type" }
9 template struct S1<short>; // { dg-message "required from here" }
11 template<typename T> struct S2
16 template struct S2<short>;
18 template<typename T1, typename T2> struct S3
23 template struct S3<short,short>;
25 template<typename T1, typename T2> struct S4
27 enum E : T1; // { dg-message "previous definition" }
28 enum E : T2; // { dg-error "different underlying type" }
30 template struct S4<short,char>; // { dg-message "required from here" }