| /* PR optimization/12198 |
| |
| This was a miscompilation of a switch expressions because |
| the "Case Ranges" extension wasn't handled in tree-cfg.c. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-O -fdump-tree-optimized" } */ |
| /* LLVM LOCAL test not applicable */ |
| /* { dg-require-fdump "" } */ |
| |
| extern void abort (void); |
| extern void exit (int); |
| |
| int main() |
| { |
| int i; |
| i = 2; |
| switch (i) |
| { |
| case 1 ... 5: |
| goto L1; |
| default: |
| abort (); |
| goto L1; |
| } |
| L1: |
| exit(0); |
| } |
| |
| /* The abort() call clearly is unreachable. */ |
| /* { dg-final { scan-tree-dump-times "abort" 0 "optimized"} } */ |
| /* { dg-final { cleanup-tree-dump "optimized" } } */ |