From 39fcc9a984e2820e4ea0fa2ac4abd17d9f3a31df Mon Sep 17 00:00:00 2001 From: dim Date: Sun, 20 Feb 2011 13:06:31 +0000 Subject: Vendor import of clang trunk r126079: http://llvm.org/svn/llvm-project/cfe/trunk@126079 --- test/Sema/compare.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test/Sema/compare.c') diff --git a/test/Sema/compare.c b/test/Sema/compare.c index b2c3563..5221b17 100644 --- a/test/Sema/compare.c +++ b/test/Sema/compare.c @@ -288,3 +288,27 @@ int test6(unsigned i, unsigned power) { unsigned x = (i < (1 << power) ? i : 0); return x != 3 ? 1 << power : i; } + +// enum >= (enum)0 comparison should not generate any warnings +enum rdar8414119_Vals { X, Y, Z }; +#define ZERO 0 +#define CHECK(x) (x >= X) +void rdar8414119_foo(enum rdar8414119_Vals v) { + if (CHECK(v)) // no-warning + return; + if (v >= X) // no-warning + return; +} +int rdar8414119_bar(unsigned x) { + return x >= ZERO; // no-warning +} +#undef ZERO +#undef CHECK + +int rdar8511238() { + enum A { A_foo, A_bar }; + enum A a; + if (a < 0) // expected-warning {{comparison of unsigned enum expression < 0 is always false}} + return 0; + return 20; +} -- cgit v1.1