diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:31:36 +0000 |
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:31:36 +0000 |
| commit | ecb7e5c8afe929ee38155db94de6b084ec32a645 (patch) | |
| tree | 53010172e19c77ea447bcd89e117cda052ab52e0 /test/Sema/switch.c | |
| parent | 5044f5c816adfd5cba17f1adee1a10127296d0bf (diff) | |
Notes
Diffstat (limited to 'test/Sema/switch.c')
| -rw-r--r-- | test/Sema/switch.c | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/test/Sema/switch.c b/test/Sema/switch.c index 08ab0e0ebd73..2690ad28e99a 100644 --- a/test/Sema/switch.c +++ b/test/Sema/switch.c @@ -85,3 +85,141 @@ int f0(int var) { // expected-note{{'var' declared here}} } return 2; } + +void test7() { + enum { + A = 1, + B + } a; + switch(a) { //expected-warning{{enumeration value 'B' not handled in switch}} + case A: + break; + } + switch(a) { + case B: + case A: + break; + } + switch(a) { + case A: + case B: + case 3: // expected-warning{{case value not in enumerated type ''}} + break; + } + switch(a) { + case A: + case B: + case 3 ... //expected-warning{{case value not in enumerated type ''}} + 4: //expected-warning{{case value not in enumerated type ''}} + break; + } + switch(a) { + case 1 ... 2: + break; + } + switch(a) { + case 0 ... 2: //expected-warning{{case value not in enumerated type ''}} + break; + } + switch(a) { + case 1 ... 3: //expected-warning{{case value not in enumerated type ''}} + break; + } + switch(a) { + case 0 ... //expected-warning{{case value not in enumerated type ''}} + 3: //expected-warning{{case value not in enumerated type ''}} + break; + } + +} + +void test8() { + enum { + A, + B, + C = 1 + } a; + switch(a) { + case A: + case B: + break; + } + switch(a) { + case A: + case C: + break; + } + switch(a) { //expected-warning{{enumeration value 'B' not handled in switch}} + case A: + break; + } +} + +void test9() { + enum { + A = 3, + C = 1 + } a; + switch(a) { + case 0: //expected-warning{{case value not in enumerated type ''}} + case 1: + case 2: //expected-warning{{case value not in enumerated type ''}} + case 3: + case 4: //expected-warning{{case value not in enumerated type ''}} + break; + } +} + +void test10() { + enum { + A = 10, + C = 2, + B = 4, + D = 12 + } a; + switch(a) { + case 0 ... //expected-warning{{case value not in enumerated type ''}} + 1: //expected-warning{{case value not in enumerated type ''}} + case 2 ... 4: + case 5 ... //expected-warning{{case value not in enumerated type ''}} + 9: //expected-warning{{case value not in enumerated type ''}} + case 10 ... 12: + case 13 ... //expected-warning{{case value not in enumerated type ''}} + 16: //expected-warning{{case value not in enumerated type ''}} + break; + } +} + +void test11() { + enum { + A = -1, + B, + C + } a; + switch(a) { //expected-warning{{enumeration value 'A' not handled in switch}} + case B: + case C: + break; + } + + switch(a) { + case B: + case C: + break; + + default: + break; + } +} + +void test12() { + enum { + A = -1, + B = 4294967286 + } a; + switch(a) { + case A: + case B: + break; + } +} |
