1 // { dg-do compile { target c++11 } }
2
3 int
toto()4 toto ()
5 {
6 [[gnu::unused]] good:
7 return 0;
8 }
9
10 int
foo()11 foo ()
12 {
13 [[gnu::unused]] good:
14 int i = 0;
15
16 // A C++11 attribute at the beginning of the return statement is
17 // syntactically correct, appertains to the return statement (not to
18 // the label) but is currently ignored by this implementation.
19 good_ignored : [[gnu::unused]] // { dg-warning "attributes at the beginning of statement are ignored" }
20 return i;
21 }
22
23 int
bar()24 bar ()
25 {
26 // A GNU attribute after the label appertains to the label.
27 good: __attribute__((unused));
28 return 0;
29 }
30
31 int
baz()32 baz ()
33 {
34 // The c++ attribute after the label appertains to the (empty)
35 // statement.
36 bad: [[gnu::unused]]; // { dg-warning "attributes at the beginning of statement are ignored" }
37 return 0;
38 }
39
40