aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C')
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C39
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C
new file mode 100644
index 0000000..723c8ef
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-53.C
@@ -0,0 +1,39 @@
+// { dg-do compile { target c++11 } }
+
+int
+toto ()
+{
+ [[gnu::unused]] good:
+ return 0;
+}
+
+int
+foo ()
+{
+ [[gnu::unused]] good:
+ int i = 0;
+
+ // A C++11 attribute at the beginning of the return statement is
+ // syntactically correct, appertains to the return statement (not to
+ // the label) but is currently ignored by this implementation.
+ good_ignored : [[gnu::unused]] // { dg-warning "attributes at the beginning of statement are ignored" }
+ return i;
+}
+
+int
+bar ()
+{
+ // A GNU attribute after the label appertains to the label.
+ good: __attribute__((unused));
+ return 0;
+}
+
+int
+baz ()
+{
+ // The c++ attribute after the label appertains to the (empty)
+ // statement.
+ bad: [[gnu::unused]]; // { dg-warning "attributes at the beginning of statement are ignored" }
+ return 0;
+}
+