summaryrefslogtreecommitdiffstats
path: root/test/Sema/switch.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/Sema/switch.c')
-rw-r--r--test/Sema/switch.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/test/Sema/switch.c b/test/Sema/switch.c
index a7a7f60..e37d5da 100644
--- a/test/Sema/switch.c
+++ b/test/Sema/switch.c
@@ -9,7 +9,7 @@ void foo(int X) {
switch (X) {
case 42: ; // expected-note {{previous case}}
case 5000000000LL: // expected-warning {{overflow}}
- case 42: // expected-error {{duplicate case value}}
+ case 42: // expected-error {{duplicate case value '42'}}
;
case 100 ... 99: ; // expected-warning {{empty case range}}
@@ -320,3 +320,32 @@ void rdar110822110(Ints i)
break;
}
}
+
+// PR9243
+#define TEST19MACRO 5
+void test19(int i) {
+ enum {
+ kTest19Enum1 = 7,
+ kTest19Enum2 = kTest19Enum1
+ };
+ const int a = 3;
+ switch (i) {
+ case 5: // expected-note {{previous case}}
+ case TEST19MACRO: // expected-error {{duplicate case value '5'}}
+
+ case 7: // expected-note {{previous case}}
+ case kTest19Enum1: // expected-error {{duplicate case value: '7' and 'kTest19Enum1' both equal '7'}} \
+ // expected-note {{previous case}}
+ case kTest19Enum1: // expected-error {{duplicate case value 'kTest19Enum1'}} \
+ // expected-note {{previous case}}
+ case kTest19Enum2: // expected-error {{duplicate case value: 'kTest19Enum1' and 'kTest19Enum2' both equal '7'}} \
+ // expected-note {{previous case}}
+ case (int)kTest19Enum2: //expected-error {{duplicate case value 'kTest19Enum2'}}
+
+ case 3: // expected-note {{previous case}}
+ case a: // expected-error {{duplicate case value: '3' and 'a' both equal '3'}} \
+ // expected-note {{previous case}}
+ case a: // expected-error {{duplicate case value 'a'}}
+ break;
+ }
+}
OpenPOWER on IntegriCloud