1 // Verify that there are no spurious warnings in nested switch statements due
2 // to the unnecessary break in the inner switch block.
3 // { dg-do compile }
4 // { dg-options "-Wimplicit-fallthrough" } */
5 
6 int
foo(int c1,int c2,int c3)7 foo (int c1, int c2, int c3)
8 {
9   switch (c2)
10     {
11     case 0:
12       switch (c3)	// { dg-bogus "may fall through" }
13 	{
14 	case 0:
15 	  if (c1)
16 	    return 1;
17 	  else
18 	    return 2;
19 	  break;
20 
21 	default:
22 	  return 3;
23 	}
24 
25     case 1:
26       return 4;
27     default:
28       return 5;
29       break;
30     }
31 }
32