blob: f11babc5b600f0b2d39831d04a92195158cab316 [file] [log] [blame]
Douglas Gregor4186ff42010-05-20 23:20:59 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3// <rdar://problem/7971948>
4struct A {};
5struct B {
Douglas Gregor662a4822010-12-23 22:56:40 +00006 void foo(int b) {
Douglas Gregor4186ff42010-05-20 23:20:59 +00007 switch (a) { // expected-error{{use of undeclared identifier 'a'}}
8 default:
9 return;
10 }
Douglas Gregor662a4822010-12-23 22:56:40 +000011
12 switch (b) {
13 case 17 // expected-error{{expected ':' after 'case'}}
14 break;
15
16 default // expected-error{{expected ':' after 'default'}}
17 return;
18 }
Douglas Gregor4186ff42010-05-20 23:20:59 +000019 }
John McCallf6a3ab02011-01-22 09:28:32 +000020
21 void test2() {
22 enum X { Xa, Xb } x;
23
24 switch (x) { // expected-warning {{enumeration value 'Xb' not handled in switch}}
25 case Xa; // expected-error {{expected ':' after 'case'}}
26 break;
27 }
28
29 switch (x) {
30 default; // expected-error {{expected ':' after 'default'}}
31 break;
32 }
33 }
Douglas Gregor4186ff42010-05-20 23:20:59 +000034};