1 // PR tree-optimization/91351
2 // { dg-do run }
3 // { dg-options "-O2 -fstrict-enums" }
4
5 enum E { e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12,
6 e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25 };
7
8 __attribute__((noipa)) void
foo()9 foo ()
10 {
11 __builtin_abort ();
12 }
13
14 __attribute__((noipa)) void
bar()15 bar ()
16 {
17 }
18
19 __attribute__((noipa)) void
baz(E e)20 baz (E e)
21 {
22 switch (e)
23 {
24 case e11:
25 case e12:
26 case e13: foo (); break;
27 case e24: break;
28 case e14:
29 case e15: break;
30 default: bar (); break;
31 }
32 }
33
34 int
main()35 main ()
36 {
37 baz (e3);
38 }
39