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