111
|
1 /* PR c/7652 */
|
|
2 /* { dg-do compile } */
|
|
3 /* { dg-options "-Wimplicit-fallthrough" } */
|
|
4
|
|
5 extern void grace (int);
|
|
6
|
|
7 int
|
|
8 fn1 (int i)
|
|
9 {
|
|
10 switch (i)
|
|
11 case 1:
|
|
12 if (i == 5)
|
|
13 grace (0);
|
|
14 else
|
|
15 goto done;
|
|
16 done:;
|
|
17 }
|
|
18
|
|
19 int
|
|
20 fn2 (int i)
|
|
21 {
|
|
22 switch (i)
|
|
23 {
|
|
24 case 1:
|
|
25 if (i == 5) /* { dg-warning "statement may fall through" } */
|
|
26 grace (0);
|
|
27 else
|
|
28 goto done;
|
|
29 case 2:
|
|
30 --i;
|
|
31 }
|
|
32 done:;
|
|
33 }
|
|
34
|
|
35 int
|
|
36 fn3 (int i)
|
|
37 {
|
|
38 switch (i)
|
|
39 {
|
|
40 case 1:
|
|
41 if (i == 5)
|
|
42 goto done;
|
|
43 else
|
|
44 goto done;
|
|
45 }
|
|
46 done:;
|
|
47 }
|
|
48
|
|
49 int
|
|
50 fn4 (int i)
|
|
51 {
|
|
52 switch (i)
|
|
53 {
|
|
54 case 1:
|
|
55 if (i == 5)
|
|
56 {
|
|
57 grace (1);
|
|
58 goto done;
|
|
59 }
|
|
60 else
|
|
61 goto done;
|
|
62 case 2:;
|
|
63 }
|
|
64 done:;
|
|
65 }
|
|
66
|
|
67 int
|
|
68 fn5 (int i)
|
|
69 {
|
|
70 switch (i)
|
|
71 {
|
|
72 case 1:
|
|
73 if (i == 5)
|
|
74 {
|
|
75 grace (1);
|
|
76 goto done;
|
|
77 }
|
|
78 else
|
|
79 grace (4); /* { dg-warning "statement may fall through" } */
|
|
80 case 2:
|
|
81 grace (9);
|
|
82 }
|
|
83 done:;
|
|
84 }
|
|
85
|
|
86 int
|
|
87 fn6 (int i)
|
|
88 {
|
|
89 switch (i)
|
|
90 {
|
|
91 case 1:
|
|
92 if (i == 5) /* { dg-warning "statement may fall through" } */
|
|
93 {
|
|
94 grace (1);
|
|
95 goto done;
|
|
96 }
|
|
97 case 2:
|
|
98 grace (8);
|
|
99 }
|
|
100 done:;
|
|
101 }
|