| /* PR c/7652 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Wimplicit-fallthrough" } */ |
| |
| /* Test various falls through comments. */ |
| |
| extern void bar (int); |
| |
| void |
| fn (int i) |
| { |
| switch (i) |
| { |
| case -1: |
| bar (-1); |
| /*-fallthrough*/ |
| case 0: |
| bar (0); |
| /*@fallthrough@*/ |
| case 1: |
| bar (1); |
| /* FALL THRU */ |
| case 2: |
| bar (2); |
| /* FALLTHRU */ |
| case 3: |
| bar (3); |
| /* FALLS THRU */ |
| case 4: |
| bar (4); |
| /* FALL-THRU */ |
| case 5: |
| bar (5); |
| /* FALL THROUGH */ |
| case 6: |
| bar (6); |
| /* FALLTHROUGH */ |
| case 7: |
| bar (7); |
| /* FALLS THROUGH */ |
| case 8: |
| bar (8); |
| /* FALL-THROUGH */ |
| case 9: |
| bar (9); |
| /*FALLTHRU*/ |
| case 10: |
| bar (10); |
| /* FALLTHRU.*/ |
| case 11: |
| bar (11); |
| /* FALLTHROUGH. */ |
| case 12: |
| bar (12); |
| /* Fall thru */ |
| case 13: |
| bar (13); |
| /* Falls thru */ |
| case 14: |
| bar (14); |
| /* Fall-thru */ |
| case 15: |
| bar (15); |
| /* Fall Thru */ |
| case 16: |
| bar (16); |
| /* Falls Thru */ |
| case 17: |
| bar (17); |
| /* Fall-Thru */ |
| case 18: |
| bar (18); |
| /* Fall through */ |
| case 19: |
| bar (19); |
| /* Falls through */ |
| case 20: |
| bar (20); |
| /* Fall-through */ |
| case 21: |
| bar (21); |
| /* Fall Through */ |
| case 22: |
| bar (22); |
| /* Falls Through */ |
| case 23: |
| bar (23); |
| /* Fall-Through */ |
| case 24: |
| bar (24); |
| /* Falls through. */ |
| case 25: |
| bar (25); |
| /* Falls through. */ |
| case 26: |
| bar (26); |
| /* fall thru */ |
| case 27: |
| bar (27); |
| /* falls thru */ |
| case 28: |
| bar (28); |
| /* fall-thru */ |
| case 29: |
| bar (29); |
| /* fall thru */ |
| case 30: |
| bar (30); |
| /* falls thru */ |
| case 31: |
| bar (31); |
| /* fall-thru */ |
| case 32: |
| bar (32); |
| /* fall through */ |
| case 33: |
| bar (33); |
| /* falls through */ |
| case 34: |
| bar (34); |
| /* fall-through */ |
| default: |
| bar (99); |
| } |
| |
| switch (i) |
| { |
| case 0: |
| i++; |
| /*@fallthrough@*/ |
| L: |
| default: |
| bar (6); |
| } |
| |
| { |
| __label__ L2; |
| switch (i) |
| { |
| case 0: |
| i++; |
| /*@fallthrough@*/ |
| L2: |
| default: |
| bar (6); |
| } |
| } |
| |
| /* Don't generate false -Wswitch-unreachable warning. */ |
| switch (i) |
| { |
| /*FALLTHROUGH*/ |
| case 0: |
| i++; |
| } |
| |
| if (i) |
| { |
| /* fall through */ |
| L1:; |
| } |
| } |