1/* PR rtl-optimization/20017 2 3 After CSE/GCSE folds a switch statement to an unconditional jump, 4 cfg_cleanup did not remove a dead jump table, confusing the CFG 5 layout code later on. */ 6 7/* { dg-do compile } */ 8/* { dg-options "-O1" } */ 9/* { dg-options "-O1 -march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ 10 11int 12foo (int *buf, int *p) 13{ 14 int result; 15 const int *tmp; 16 17 if (*buf) 18 return 1; 19 20 result = 2; 21 *buf = 2; 22 tmp = buf; 23 switch (*tmp) 24 { 25 case 3: 26 case 4: 27 case 6: 28 case 14: 29 return 1; 30 31 case 0: 32 result = *p; 33 34 /* Fall through. */ 35 default: 36 if (result) 37 return 1; 38 } 39 40 return 0; 41} 42