diff options
author | Martin Liska <mliska@suse.cz> | 2020-01-28 10:27:16 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-01-28 10:27:16 +0100 |
commit | 1d8593070a62b5e5e7583687648c6d34e825cee2 (patch) | |
tree | bf63e3cf1892d3eb9668a27ed082b0d13a244ee2 | |
parent | d3c00969fe619ae116dfbc07e6b364558acb6e3f (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 4 |
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), |