aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-01-28 10:27:16 +0100
committerMartin Liska <mliska@suse.cz>2020-01-28 10:27:16 +0100
commit1d8593070a62b5e5e7583687648c6d34e825cee2 (patch)
treebf63e3cf1892d3eb9668a27ed082b0d13a244ee2
parentd3c00969fe619ae116dfbc07e6b364558acb6e3f (diff)
downloadgcc-1d8593070a62b5e5e7583687648c6d34e825cee2.zip
gcc-1d8593070a62b5e5e7583687648c6d34e825cee2.tar.gz
gcc-1d8593070a62b5e5e7583687648c6d34e825cee2.tar.bz2
Add couple of auto_diagnostic_group in redeclare_class_template.
PR c++/92440 * pt.c (redeclare_class_template): Group couple of errors and inform messages with auto_diagnostic_group.
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/pt.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f029c20..3d5c9a1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,6 +1,12 @@
2020-01-28 Martin Liska <mliska@suse.cz>
PR c++/92440
+ * pt.c (redeclare_class_template): Group couple of
+ errors and inform messages with auto_diagnostic_group.
+
+2020-01-28 Martin Liska <mliska@suse.cz>
+
+ PR c++/92440
* pt.c (redeclare_class_template): Use inform
for the second location.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 274fe84..e889c80 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6148,6 +6148,7 @@ redeclare_class_template (tree type, tree parms, tree cons)
&& (TEMPLATE_PARM_PARAMETER_PACK (DECL_INITIAL (tmpl_parm))
!= TEMPLATE_PARM_PARAMETER_PACK (DECL_INITIAL (parm)))))
{
+ auto_diagnostic_group d;
error ("template parameter %q+#D", tmpl_parm);
inform (input_location, "redeclared here as %q#D", parm);
return false;
@@ -6159,6 +6160,7 @@ redeclare_class_template (tree type, tree parms, tree cons)
tree p2 = TREE_VEC_ELT (parms, i);
if (!template_parameter_constraints_equivalent_p (p1, p2))
{
+ auto_diagnostic_group d;
error ("declaration of template parameter %q+#D with different "
"constraints", parm);
inform (DECL_SOURCE_LOCATION (tmpl_parm),
@@ -6172,6 +6174,7 @@ redeclare_class_template (tree type, tree parms, tree cons)
A template-parameter may not be given default arguments
by two different declarations in the same scope. */
+ auto_diagnostic_group d;
error_at (input_location, "redefinition of default argument for %q#D", parm);
inform (DECL_SOURCE_LOCATION (tmpl_parm),
"original definition appeared here");
@@ -6206,6 +6209,7 @@ redeclare_class_template (tree type, tree parms, tree cons)
/* Two classes with different constraints declare different entities. */
if (!cp_tree_equal (req1, req2))
{
+ auto_diagnostic_group d;
error_at (input_location, "redeclaration %q#D with different "
"constraints", tmpl);
inform (DECL_SOURCE_LOCATION (tmpl),