1/* { dg-do compile } */
2/* { dg-options "-Wswitch-default" } */
3
4enum e { e1, e2 };
5
6int
7foo (int i, int j, enum e ei, enum e ej, enum e ek, enum e el,
8     enum e em, enum e en, enum e eo, enum e ep)
9{
10  switch (i) /* { dg-warning "switch missing default case" } */
11    {
12    case 1: return 1;
13    case 2: return 2;
14    }
15  switch (j)
16    {
17    case 3: return 4;
18    case 4: return 3;
19    default: break;
20    }
21  switch (ei) /* { dg-warning "switch missing default case" } */
22    {
23    }
24  switch (ej)
25    {
26    default: break;
27    }
28  switch (ek) /* { dg-warning "switch missing default case" } */
29    {
30    case e1: return 1;
31    }
32  switch (el)
33    {
34    case e1: return 1;
35    default: break;
36    }
37  switch (em) /* { dg-warning "switch missing default case" } */
38    {
39    case e1: return 1;
40    case e2: return 2;
41    }
42  switch (en)
43    {
44    case e1: return 1;
45    case e2: return 2;
46    default: break;
47    }
48  switch (eo) /* { dg-warning "switch missing default case" } */
49    {
50    case e1: return 1;
51    case e2: return 2;
52    case 3: return 3;
53    }
54  switch (ep)
55    {
56    case e1: return 1;
57    case e2: return 2;
58    case 3: return 3;
59    default: break;
60    }
61  return 0;
62}
63