finish off switch case overlap checking, adding support for
verifying case ranges.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41331 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/switch.c b/test/Sema/switch.c
index 0128a21..eacd3c2 100644
--- a/test/Sema/switch.c
+++ b/test/Sema/switch.c
@@ -2,22 +2,29 @@
void f (int z) {
while (z) {
- default: z--; // expected-error {{statement not in switch}}
+ default: z--; // expected-error {{statement not in switch}}
}
}
void foo(int X) {
switch (X) {
- case 42: ; // expected-error {{previous case value}}
- case 5000000000LL: // expected-warning {{overflow}}
- case 42: // expected-error {{duplicate case value}}
+ case 42: ; // expected-error {{previous case value}}
+ case 5000000000LL: // expected-warning {{overflow}}
+ case 42: // expected-error {{duplicate case value}}
;
- case 100 ... 99: ; // expected-warning {{empty case range}}
+ case 100 ... 99: ; // expected-warning {{empty case range}}
+
+ case 43: ; // expected-error {{previous case value}}
+ case 43 ... 45: ; // expected-error {{duplicate case value}}
+
+ case 100 ... 20000:; // expected-error {{previous case value}}
+ case 15000 ... 40000000:; // expected-error {{duplicate case value}}
}
}
void test3(void) {
+ // empty switch;
switch (0);
}