]>
git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/c-c++-common/pr89888.c
2 /* { dg-do compile { target { int32 } } } */
3 /* { dg-options "" } */
12 case -1: y
= -1; break; /* { dg-message "previously used here" } */
13 /* { dg-warning "case label value is less than minimum value for type" "" { target *-*-* } .-1 } */
14 case 0xffffffff: y
= 0xffffffff; break; /* { dg-error "duplicate case value" } */
15 case ~0U: y
= ~0U; break; /* { dg-error "duplicate case value" } */
24 case -1: y
= -1; break; /* { dg-message "previously used here" } */
25 /* { dg-warning "case label value is less than minimum value for type" "" { target *-*-* } .-1 } */
26 case -1: y
= -1; break; /* { dg-error "duplicate case value" } */
27 case -1: y
= -1; break; /* { dg-error "duplicate case value" } */
36 case -7: y
= -7; break; /* { dg-warning "case label value is less than minimum value for type" } */
37 case -5 ... 2: y
= -5; break; /* { dg-warning "lower value in case label range less than minimum value for type" } */
38 case 18: y
= 18; break;
39 case (unsigned char) -2 ... 4 + (unsigned char) -2: y
= 2; break; /* { dg-warning "upper value in case label range exceeds maximum value for type" } */
40 case 24 + (unsigned char) -2: y
= 3; break; /* { dg-warning "case label value exceeds maximum value for type" } */
49 case (unsigned char) -1 ... 1 + (unsigned char) -1: y
= 2; break; /* { dg-warning "upper value in case label range exceeds maximum value for type" } */
50 case -12: y
= -7; break; /* { dg-warning "case label value is less than minimum value for type" } */
51 case 18: y
= 18; break;
52 case 27 + (unsigned char) -1: y
= 3; break; /* { dg-warning "case label value exceeds maximum value for type" } */
53 case -1 ... 0: y
= -5; break; /* { dg-warning "lower value in case label range less than minimum value for type" } */
58 quux (unsigned char x
)
62 case (unsigned char) -2 ... (unsigned char) -1: y
= 2; break;
63 case 18: y
= 18; break;
64 case 1 + (unsigned char) -1: y
= 3; break; /* { dg-warning "case label value exceeds maximum value for type" } */
65 case -2 ... -1: y
= -5; break; /* { dg-warning "case label value is less than minimum value for type" } */