enum-sign-conversion.c
400 Bytes
// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -fsyntax-only -verify -DUNSIGNED -Wsign-conversion %s
// RUN: %clang_cc1 -triple=x86_64-pc-win32 -fsyntax-only -verify -Wsign-conversion %s
// PR35200
enum X { A,B,C};
int f(enum X x) {
#ifdef UNSIGNED
return x; // expected-warning {{implicit conversion changes signedness: 'enum X' to 'int'}}
#else
// expected-no-diagnostics
return x;
#endif
}