1 // RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -fsyntax-only -Wenum-conversion -verify %s 2 // RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -fsyntax-only -Wconversion -verify %s 3 4 // Signed enums 5 enum SE1 { N1 = -1 }; 6 enum SE2 { N2 = -2 }; 7 // Unsigned unums 8 enum UE1 { P1 }; 9 enum UE2 { P2 }; 10 11 enum UE2 f1(enum UE1 E) { 12 return E; // expected-warning {{implicit conversion from enumeration type 'enum UE1' to different enumeration type 'enum UE2'}} 13 } 14 15 enum SE1 f2(enum UE1 E) { 16 return E; // expected-warning {{implicit conversion from enumeration type 'enum UE1' to different enumeration type 'enum SE1'}} 17 } 18 19 enum UE1 f3(enum SE1 E) { 20 return E; // expected-warning {{implicit conversion from enumeration type 'enum SE1' to different enumeration type 'enum UE1'}} 21 } 22 23 enum SE2 f4(enum SE1 E) { 24 return E; // expected-warning {{implicit conversion from enumeration type 'enum SE1' to different enumeration type 'enum SE2'}} 25 } 26