Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/switch-warn-1.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
line wrap: on
line source
/* { dg-do run } */ /* { dg-options "-O0" } */ extern void abort (void); extern void exit (int); /* Check that out-of-bounds case warnings work in the case that the testing expression is promoted. */ int foo1 (unsigned char i) { switch (i) { case -1: /* { dg-warning "case label value is less than minimum value for type|statement will never be executed" } */ return 1; case 256: /* { dg-warning "case label value exceeds maximum value for type" } */ return 2; default: return 3; } } /* Like above, but for case ranges that need to be satured. */ int foo2 (unsigned char i) { switch (i) { case -1 ... 1: /* { dg-warning "lower value in case label range less than minimum value for type" } */ return 1; case 254 ... 256: /* { dg-warning "upper value in case label range exceeds maximum value for type" } */ return 2; default: return 3; } } int main (void) { if (foo1 (10) != 3) abort (); if (foo2 (10) != 3) abort (); exit (0); }