1/* { dg-do compile } */ 2/* { dg-options "-O2" } */ 3 4extern void bar (void); 5 6/* Case 181 is not in the range for 'char'. */ 7void 8foo1 (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. */ 21void 22foo2 (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. */ 35void 36foo3 (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. */ 49void 50foo4 (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