[gcc(refs/vendors/redhat/heads/gcc-10-branch)] Add couple of auto_diagnostic_group in redeclare_class_template.

Jakub Jelinek jakub@gcc.gnu.org
Thu Jan 30 20:54:00 GMT 2020


https://gcc.gnu.org/g:1d8593070a62b5e5e7583687648c6d34e825cee2

commit 1d8593070a62b5e5e7583687648c6d34e825cee2
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jan 28 10:27:16 2020 +0100

    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.

Diff:
---
 gcc/cp/ChangeLog | 6 ++++++
 gcc/cp/pt.c      | 4 ++++
 2 files changed, 10 insertions(+)

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),



More information about the Gcc-cvs mailing list