Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/c-c++-common/pr60439.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line source
/* PR c/60439 */ /* { dg-do compile } */ /* { dg-prune-output "case label value exceeds" } */ #ifndef __cplusplus # define bool _Bool #endif extern bool foo (void); void f1 (bool b) { switch (b) /* { dg-warning "switch condition has" } */ { case 3: break; } } void f2 (int a, int b) { switch (a && b) /* { dg-warning "switch condition has" } */ { case 3: break; } switch ((bool) (a && b)) /* { dg-warning "switch condition has" } */ { case 3: break; } switch ((a && b) || a) /* { dg-warning "switch condition has" } */ { case 3: break; } /* No warnings on following. */ switch ((int) (a && b)) break; switch ((unsigned int) (a && b)) break; switch ((unsigned short int) (a && b)) break; switch ((char) (a && b)) break; } void f3 (int a) { switch (!!a) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (!a) /* { dg-warning "switch condition has" } */ { case 3: break; } } void f4 (void) { switch (foo ()) /* { dg-warning "switch condition has" } */ { case 3: break; } } void f5 (int a) { switch (a == 3) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (a != 3) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (a > 3) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (a < 3) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (a <= 3) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (a >= 3) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (foo (), foo (), a >= 42) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (a == 3, a & 4, a ^ 5, a) break; switch ((int) (a == 3)) break; switch ((int) (a != 3)) break; } void f6 (bool b) { switch (b) /* { dg-warning "switch condition has" } */ { case 3: break; } switch (!b) /* { dg-warning "switch condition has" } */ { case 3: break; } } void f7 (void) { bool b; switch (b = 1) /* { dg-warning "switch condition has" } */ { case 3: break; } } void f8 (int i) { switch (i) break; switch ((int) i) break; switch ((unsigned int) i) break; switch ((bool) i) /* { dg-warning "switch condition has" } */ { case 11: break; } }