Chris Lattner | 3b427b3 | 2007-10-11 00:18:28 +0000 | [diff] [blame] | 1 | // RUN: clang -fsyntax-only -verify %s |
Chris Lattner | 8a87e57 | 2007-07-23 17:05:23 +0000 | [diff] [blame] | 2 | |
Chris Lattner | 8a87e57 | 2007-07-23 17:05:23 +0000 | [diff] [blame] | 3 | void f (int z) { |
| 4 | while (z) { |
Chris Lattner | 0471f5b | 2007-08-23 18:29:20 +0000 | [diff] [blame] | 5 | default: z--; // expected-error {{statement not in switch}} |
Chris Lattner | 8a87e57 | 2007-07-23 17:05:23 +0000 | [diff] [blame] | 6 | } |
| 7 | } |
| 8 | |
Chris Lattner | f4021e7 | 2007-08-23 05:46:52 +0000 | [diff] [blame] | 9 | void foo(int X) { |
| 10 | switch (X) { |
Chris Lattner | 0471f5b | 2007-08-23 18:29:20 +0000 | [diff] [blame] | 11 | case 42: ; // expected-error {{previous case value}} |
| 12 | case 5000000000LL: // expected-warning {{overflow}} |
| 13 | case 42: // expected-error {{duplicate case value}} |
Chris Lattner | f4021e7 | 2007-08-23 05:46:52 +0000 | [diff] [blame] | 14 | ; |
Chris Lattner | 6efc4d3 | 2007-08-23 17:48:14 +0000 | [diff] [blame] | 15 | |
Chris Lattner | 0471f5b | 2007-08-23 18:29:20 +0000 | [diff] [blame] | 16 | case 100 ... 99: ; // expected-warning {{empty case range}} |
| 17 | |
| 18 | case 43: ; // expected-error {{previous case value}} |
| 19 | case 43 ... 45: ; // expected-error {{duplicate case value}} |
| 20 | |
| 21 | case 100 ... 20000:; // expected-error {{previous case value}} |
| 22 | case 15000 ... 40000000:; // expected-error {{duplicate case value}} |
Chris Lattner | f4021e7 | 2007-08-23 05:46:52 +0000 | [diff] [blame] | 23 | } |
| 24 | } |
| 25 | |
Chris Lattner | f334850 | 2007-08-23 14:29:07 +0000 | [diff] [blame] | 26 | void test3(void) { |
Chris Lattner | 0471f5b | 2007-08-23 18:29:20 +0000 | [diff] [blame] | 27 | // empty switch; |
Chris Lattner | f334850 | 2007-08-23 14:29:07 +0000 | [diff] [blame] | 28 | switch (0); |
| 29 | } |
| 30 | |