| /* Test C2x fallthrough attribute: mixtures with other attributes. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-std=c2x -pedantic-errors" } */ |
| |
| /* Use of other standard attributes together with "fallthrough" goes |
| through a different path to diagnosing ignored attributes from that |
| used in attribute declarations without "fallthrough". Verify that |
| such ignored attributes result in a pedwarn (for use in a context |
| not permitted in the constraints for those attributes) in this case |
| as well. */ |
| |
| int |
| f (int a) |
| { |
| switch (a) |
| { |
| case 1: |
| a++; |
| [[fallthrough, deprecated]]; /* { dg-error "attribute ignored" } */ |
| case 2: |
| a++; |
| [[maybe_unused]] [[fallthrough]]; /* { dg-error "attribute ignored" } */ |
| case 3: |
| a++; |
| [[__nodiscard__, fallthrough]]; /* { dg-error "attribute ignored" } */ |
| case 4: |
| a++; |
| } |
| return a; |
| } |