1 /* PR c/7652 */
2 /* { dg-do compile } */
3 /* { dg-options "-Wimplicit-fallthrough" } */
4
5 extern void bar (int);
6 extern void die (void) __attribute__((noreturn));
7
8 /* Test may_fallthru-ness. */
9
10 void
f(int i)11 f (int i)
12 {
13 switch (i)
14 {
15 case 1:
16 bar (0);
17 __attribute__((fallthrough));
18 case 2:;
19 }
20
21 switch (i)
22 {
23 case 1:
24 bar (0);
25 return;
26 case 2:;
27 }
28
29 switch (i)
30 {
31 case 1:
32 bar (0);
33 break;
34 case 2:;
35 }
36
37 switch (i)
38 {
39 case 1:
40 bar (0);
41 goto L1;
42 L1:
43 case 2:;
44 }
45
46 switch (i)
47 {
48 case 1:
49 bar (0);
50 die ();
51 case 2:;
52 }
53
54 switch (i)
55 {
56 case 1:
57 {
58 int i, j, k;
59 bar (0);
60 __attribute__((fallthrough));
61 }
62 case 2:;
63 }
64
65 switch (i)
66 {
67 case 1:
68 {
69 int i, j, k;
70 bar (0);
71 return;
72 }
73 case 2:;
74 }
75
76 switch (i)
77 {
78 case 1:
79 {
80 int i, j, k;
81 bar (0);
82 break;
83 }
84 case 2:;
85 }
86
87 switch (i)
88 {
89 case 1:
90 {
91 int i, j, k;
92 bar (0);
93 goto L2;
94 }
95 L2:
96 case 2:;
97 }
98
99 switch (i)
100 {
101 case 1:
102 {
103 int i, j, k;
104 bar (0);
105 die ();
106 }
107 case 2:;
108 }
109 }
110