diff options
Diffstat (limited to 'gcc/testsuite/c-c++-common/pr60439.c')
-rw-r--r-- | gcc/testsuite/c-c++-common/pr60439.c | 96 |
1 files changed, 77 insertions, 19 deletions
diff --git a/gcc/testsuite/c-c++-common/pr60439.c b/gcc/testsuite/c-c++-common/pr60439.c index 3368a0b944d..68bd33c22cb 100644 --- a/gcc/testsuite/c-c++-common/pr60439.c +++ b/gcc/testsuite/c-c++-common/pr60439.c @@ -1,5 +1,6 @@ /* PR c/60439 */ /* { dg-do compile } */ +/* { dg-prune-output "case label value exceeds" } */ #ifndef __cplusplus # define bool _Bool @@ -11,18 +12,30 @@ void f1 (bool b) { switch (b) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } } void f2 (int a, int b) { switch (a && b) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch ((bool) (a && b)) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch ((a && b) || a) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } /* No warnings on following. */ switch ((int) (a && b)) break; @@ -38,35 +51,65 @@ void f3 (int a) { switch (!!a) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (!a) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } } void f4 (void) { switch (foo ()) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } } void f5 (int a) { switch (a == 3) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (a != 3) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (a > 3) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (a < 3) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (a <= 3) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (a >= 3) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (foo (), foo (), a >= 42) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (a == 3, a & 4, a ^ 5, a) break; switch ((int) (a == 3)) @@ -79,11 +122,20 @@ void f6 (bool b) { switch (b) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (!b) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } switch (b++) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } } void @@ -91,7 +143,10 @@ f7 (void) { bool b; switch (b = 1) /* { dg-warning "switch condition has" } */ - break; + { + case 3: + break; + } } void @@ -104,5 +159,8 @@ f8 (int i) switch ((unsigned int) i) break; switch ((bool) i) /* { dg-warning "switch condition has" } */ - break; + { + case 11: + break; + } } |