| /* 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; | |
| } |