diff options
Diffstat (limited to 'test/SemaCXX/compare.cpp')
-rw-r--r-- | test/SemaCXX/compare.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/SemaCXX/compare.cpp b/test/SemaCXX/compare.cpp new file mode 100644 index 0000000..806b078 --- /dev/null +++ b/test/SemaCXX/compare.cpp @@ -0,0 +1,15 @@ +// RUN: clang-cc -fsyntax-only -pedantic -verify %s + +int test0(long a, unsigned long b) { + enum Enum {B}; + return (a == B) + // expected-warning {{comparison of integers of different signs}} + ((int)a == B) + // expected-warning {{comparison of integers of different signs}} + ((short)a == B) + // expected-warning {{comparison of integers of different signs}} + (a == (unsigned int) B) + // expected-warning {{comparison of integers of different signs}} + (a == (unsigned short) B); // expected-warning {{comparison of integers of different signs}} + + // Should be able to prove all of these are non-negative. + return (b == (long) B) + + (b == (int) B) + + (b == (short) B); +} |