1 /* Test C2x fallthrough attribute: mixtures with other attributes.  */
2 /* { dg-do compile } */
3 /* { dg-options "-std=c2x -pedantic-errors" } */
4 
5 /* Use of other standard attributes together with "fallthrough" goes
6    through a different path to diagnosing ignored attributes from that
7    used in attribute declarations without "fallthrough".  Verify that
8    such ignored attributes result in a pedwarn (for use in a context
9    not permitted in the constraints for those attributes) in this case
10    as well.  */
11 
12 int
f(int a)13 f (int a)
14 {
15   switch (a)
16     {
17     case 1:
18       a++;
19       [[fallthrough, deprecated]]; /* { dg-error "attribute ignored" } */
20     case 2:
21       a++;
22       [[maybe_unused]] [[fallthrough]]; /* { dg-error "attribute ignored" } */
23     case 3:
24       a++;
25       [[__nodiscard__, fallthrough]]; /* { dg-error "attribute ignored" } */
26     case 4:
27       a++;
28     }
29   return a;
30 }
31