+2015-07-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60365
+ * parser.c (cp_parser_check_std_attribute): New.
+ (cp_parser_std_attribute_list): Call it.
+
2015-07-01 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/66686
return attribute;
}
+/* Check that the attribute ATTRIBUTE appears at most once in the
+ attribute-list ATTRIBUTES. This is enforced for noreturn (7.6.3)
+ and deprecated (7.6.5). Note that carries_dependency (7.6.4)
+ isn't implemented yet in GCC. */
+
+static void
+cp_parser_check_std_attribute (tree attributes, tree attribute)
+{
+ if (attributes)
+ {
+ tree name = get_attribute_name (attribute);
+ if (is_attribute_p ("noreturn", name)
+ && lookup_attribute ("noreturn", attributes))
+ error ("attribute noreturn can appear at most once "
+ "in an attribute-list");
+ else if (is_attribute_p ("deprecated", name)
+ && lookup_attribute ("deprecated", attributes))
+ error ("attribute deprecated can appear at most once "
+ "in an attribute-list");
+ }
+}
+
/* Parse a list of standard C++-11 attributes.
attribute-list:
break;
if (attribute != NULL_TREE)
{
+ cp_parser_check_std_attribute (attributes, attribute);
TREE_CHAIN (attribute) = attributes;
attributes = attribute;
}
+2015-07-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/60365
+ * g++.dg/cpp0x/gen-attrs-60.C: New.
+ * g++.dg/cpp1y/attr-deprecated-2.C: Likewise.
+
2015-07-01 Jiong Wang <jiong.wang@arm.com>
- * lib/target-supports.exp (check_effective_target_aarch64_small_fpic): New function.
+ * lib/target-supports.exp (check_effective_target_aarch64_small_fpic):New function.
* gcc.target/aarch64/pic-small.c: Restrict this test under
check_effective_target_aarch64_small_fpic.