/* Test C2x attribute syntax. Valid use of fallthrough attribute. */ /* { dg-do compile } */ /* { dg-options "-std=c2x -pedantic-errors -Wextra" } */ int f (int a, int c) { int b = 2; switch (a) { case 1: b = 1; /* { dg-warning "may fall through" } */ case 2: b = 2; [[fallthrough]]; case 3: b += 7; break; case 4: b = 5; [[__fallthrough__]]; case 5: b += 1; break; case 6: if (c == 2) { [[fallthrough]]; } else { [[fallthrough]]; } case 7: b += 3; [[fallthrough]]; default: b += 8; break; } return b; }