1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 // <rdar://problem/7971948>
7 switch (a
) { // expected-error{{use of undeclared identifier 'a'}}
13 case 17 // expected-error{{expected ':' after 'case'}}
16 default // expected-error{{expected ':' after 'default'}}
24 switch (x
) { // expected-warning {{enumeration value 'Xb' not handled in switch}}
25 case Xa
; // expected-error {{expected ':' after 'case'}}
30 default; // expected-error {{expected ':' after 'default'}}
38 2: return 1; // expected-error {{expected 'case' keyword before expression}}
46 1: return -1; // expected-error {{expected 'case' keyword before expression}}
52 case 1: case 2: case 3: return 1;
54 4:5:6:7: return 2; // expected-error 4{{expected 'case' keyword before expression}}
64 // This class provides extra single colon tokens. Make sure no
65 // errors are seen here.
72 5: // expected-error {{expected 'case' keyword before expression}}
80 true ? 1 : 2: // expected-error {{expected 'case' keyword before expression}}
91 A
: return 0; // FIXME: give a warning for unused labels that could also be
97 // Stress test to make sure Clang doesn't crash.
101 2: case; // expected-error {{expected 'case' keyword before expression}} \
102 expected
-error
{{expected expression
}}
103 4:5:6: return; // expected-error 3{{expected 'case' keyword before expression}}
104 7: :x
; // expected-error {{expected 'case' keyword before expression}} \
105 expected
-error
{{expected expression
}}
106 8:: x
; // expected-error {{expected ';' after expression}} \
107 expected
-error
{{no member named
'x' in the global
namespace}} \
108 expected
-warning
{{expression result unused
}}
109 9:: :y
; // expected-error {{expected ';' after expression}} \
110 expected
-error
{{expected unqualified
-id
}} \
111 expected
-warning
{{expression result unused
}}
112 :; // expected-error {{expected expression}}
113 ::; // expected-error {{expected unqualified-id}}
122 2: y
++; // expected-error {{expected ';' after expression}} \
123 // expected-warning {{expression result unused}}
137 E
: break; // FIXME: give a 'case' fix-it for unused labels that
138 // could also be an expression an a case label.
139 E
+1: break; // expected-error {{expected 'case' keyword before expression}}
146 0: // expected-error {{expected 'case' keyword before expression}}
148 1: // expected-error {{expected 'case' keyword before expression}}
150 2: // expected-error {{expected 'case' keyword before expression}}
152 3: // expected-error {{expected 'case' keyword before expression}}