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); 
 }