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