/* PR rtl-optimization/20017 After CSE/GCSE folds a switch statement to an unconditional jump, cfg_cleanup did not remove a dead jump table, confusing the CFG layout code later on. */ /* { dg-do compile } */ /* { dg-options "-O1" } */ /* { dg-options "-O1 -march=i386" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ int foo (int *buf, int *p) { int result; const int *tmp; if (*buf) return 1; result = 2; *buf = 2; tmp = buf; switch (*tmp) { case 3: case 4: case 6: case 14: return 1; case 0: result = *p; /* Fall through. */ default: if (result) return 1; } return 0; }