| /* PR c/7652 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Wimplicit-fallthrough" } */ |
| |
| /* Testing non-case labels. */ |
| |
| int foo (int); |
| |
| void |
| f1 (int i) |
| { |
| switch (i) |
| { |
| case 0: |
| foo (1); |
| L1: |
| foo (2); |
| } |
| |
| switch (i) |
| { |
| case 0: |
| foo (1); /* { dg-warning "statement may fall through" } */ |
| L2: |
| case 2: |
| foo (2); |
| } |
| |
| switch (i) |
| { |
| case 0: |
| foo (1); /* { dg-warning "statement may fall through" } */ |
| case 2: |
| L3: |
| foo (2); |
| } |
| |
| switch (i) |
| { |
| case 0: |
| foo (1); /* { dg-warning "statement may fall through" } */ |
| L4: |
| case 2: |
| L5: |
| foo (2); |
| } |
| |
| switch (i) |
| { |
| case 0: |
| switch (i) |
| { |
| case 1: |
| foo (2); |
| L6: |
| foo (3); |
| } |
| } |
| |
| switch (i) |
| { |
| case 0: |
| switch (i) |
| { |
| case 1: |
| foo (2); /* { dg-warning "statement may fall through" } */ |
| L7: |
| case 2: |
| foo (3); |
| } |
| } |
| |
| switch (i) |
| { |
| case 0: |
| switch (i) |
| { |
| case 1: |
| foo (2); /* { dg-warning "statement may fall through" } */ |
| case 2: |
| L8: |
| foo (3); |
| } |
| } |
| } |