| /* { dg-do compile } */ |
| /* { dg-options "-O2" } */ |
| |
| extern void bar (void); |
| |
| /* Case 181 is not in the range for 'char'. */ |
| void |
| foo1 (char *buf) |
| { |
| int x = *buf; |
| switch (x) |
| { |
| case -76: |
| case 65: |
| case 181: |
| bar(); |
| } |
| } |
| |
| /* All cases are below the range of char. */ |
| void |
| foo2 (char *buf) |
| { |
| int x = *buf; |
| switch (x) |
| { |
| case -150: |
| case -140: |
| case -130: |
| bar(); |
| } |
| } |
| |
| /* All cases are above the range of char. */ |
| void |
| foo3 (char *buf) |
| { |
| int x = *buf; |
| switch (x) |
| { |
| case 130: |
| case 140: |
| case 150: /* This case is not in the range for 'char'. */ |
| bar(); |
| } |
| } |
| |
| /* The bounding cases are partially out of range for char. */ |
| void |
| foo4 (char *buf) |
| { |
| int x = *buf; |
| switch (x) |
| { |
| case -130 ... -120: |
| case 100: |
| case 120 ... 130: |
| bar(); |
| } |
| } |
| |