aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/decl.c32
2 files changed, 23 insertions, 16 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 76f7aa9..4a491cc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2014-04-04 Fabien ChĂȘne <fabien@gcc.gnu.org>
+
+ * decl.c (duplicate_decls): Check for the return of warning_at
+ before emitting a note.
+ (warn_misplaced_attr_for_class_type): Likewise.
+ (check_tag_decl): Likewise.
+
2014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58207
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index d70a865..3400594 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -1648,10 +1648,10 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend)
&& prototype_p (TREE_TYPE (newdecl)))
{
/* Prototype decl follows defn w/o prototype. */
- warning_at (DECL_SOURCE_LOCATION (newdecl), 0,
- "prototype specified for %q#D", newdecl);
- inform (DECL_SOURCE_LOCATION (olddecl),
- "previous non-prototype definition here");
+ if (warning_at (DECL_SOURCE_LOCATION (newdecl), 0,
+ "prototype specified for %q#D", newdecl))
+ inform (DECL_SOURCE_LOCATION (olddecl),
+ "previous non-prototype definition here");
}
else if (VAR_OR_FUNCTION_DECL_P (olddecl)
&& DECL_LANGUAGE (newdecl) != DECL_LANGUAGE (olddecl))
@@ -4241,12 +4241,12 @@ warn_misplaced_attr_for_class_type (source_location location,
{
gcc_assert (OVERLOAD_TYPE_P (class_type));
- warning_at (location, OPT_Wattributes,
- "attribute ignored in declaration "
- "of %q#T", class_type);
- inform (location,
- "attribute for %q#T must follow the %qs keyword",
- class_type, class_key_or_enum_as_string (class_type));
+ if (warning_at (location, OPT_Wattributes,
+ "attribute ignored in declaration "
+ "of %q#T", class_type))
+ inform (location,
+ "attribute for %q#T must follow the %qs keyword",
+ class_type, class_key_or_enum_as_string (class_type));
}
/* Make sure that a declaration with no declarator is well-formed, i.e.
@@ -4373,12 +4373,12 @@ check_tag_decl (cp_decl_specifier_seq *declspecs,
No attribute-specifier-seq shall appertain to an explicit
instantiation. */
{
- warning_at (loc, OPT_Wattributes,
- "attribute ignored in explicit instantiation %q#T",
- declared_type);
- inform (loc,
- "no attribute can be applied to "
- "an explicit instantiation");
+ if (warning_at (loc, OPT_Wattributes,
+ "attribute ignored in explicit instantiation %q#T",
+ declared_type))
+ inform (loc,
+ "no attribute can be applied to "
+ "an explicit instantiation");
}
else
warn_misplaced_attr_for_class_type (loc, declared_type);