1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 extern void bar (void);
5 
6 /* Case 181 is not in the range for 'char'.  */
7 void
foo1(char * buf)8 foo1 (char *buf)
9 {
10   int x = *buf;
11   switch (x)
12     {
13     case -76:
14     case 65:
15     case 181:
16       bar();
17     }
18 }
19 
20 /* All cases are below the range of char.  */
21 void
foo2(char * buf)22 foo2 (char *buf)
23 {
24   int x = *buf;
25   switch (x)
26     {
27     case -150:
28     case -140:
29     case -130:
30       bar();
31     }
32 }
33 
34 /* All cases are above the range of char.  */
35 void
foo3(char * buf)36 foo3 (char *buf)
37 {
38   int x = *buf;
39   switch (x)
40     {
41     case 130:
42     case 140:
43     case 150: /* This case is not in the range for 'char'.  */
44       bar();
45     }
46 }
47 
48 /* The bounding cases are partially out of range for char.  */
49 void
foo4(char * buf)50 foo4 (char *buf)
51 {
52   int x = *buf;
53   switch (x)
54     {
55     case -130 ... -120:
56     case 100:
57     case 120 ... 130:
58       bar();
59     }
60 }
61 
62