aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-01-28 10:26:53 +0100
committerMartin Liska <mliska@suse.cz>2020-01-28 10:26:53 +0100
commitd3c00969fe619ae116dfbc07e6b364558acb6e3f (patch)
treea87b53464a35851f33080583628b11fb8a27e700
parent06d481d044ca7126f9d298ad9a4074fafde47ee8 (diff)
downloadgcc-d3c00969fe619ae116dfbc07e6b364558acb6e3f.zip
gcc-d3c00969fe619ae116dfbc07e6b364558acb6e3f.tar.gz
gcc-d3c00969fe619ae116dfbc07e6b364558acb6e3f.tar.bz2
Replace one error with inform.
PR c++/92440 * pt.c (redeclare_class_template): Use inform for the second location. PR c++/92440 * g++.dg/template/pr92440.C: New test. * g++.dg/cpp0x/vt-34314.C: Update error to note. * g++.dg/template/pr59930-2.C: Likewise. * g++.old-deja/g++.pt/redecl1.C: Likewise.
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/pt.c2
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/vt-34314.C6
-rw-r--r--gcc/testsuite/g++.dg/template/pr59930-2.C2
-rw-r--r--gcc/testsuite/g++.dg/template/pr92440.C10
-rw-r--r--gcc/testsuite/g++.dg/template/redecl2.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/redecl1.C4
8 files changed, 32 insertions, 8 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 44f3975..f029c20 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2020-01-28 Martin Liska <mliska@suse.cz>
+
+ PR c++/92440
+ * pt.c (redeclare_class_template): Use inform
+ for the second location.
+
2020-01-27 Jason Merrill <jason@redhat.com>
PR c++/90966
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 6e614d5..274fe84 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6149,7 +6149,7 @@ redeclare_class_template (tree type, tree parms, tree cons)
!= TEMPLATE_PARM_PARAMETER_PACK (DECL_INITIAL (parm)))))
{
error ("template parameter %q+#D", tmpl_parm);
- error ("redeclared here as %q#D", parm);
+ inform (input_location, "redeclared here as %q#D", parm);
return false;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6518f7f..255cd08 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2020-01-28 Martin Liska <mliska@suse.cz>
+
+ PR c++/92440
+ * g++.dg/template/pr92440.C: New test.
+ * g++.dg/cpp0x/vt-34314.C: Update error to note.
+ * g++.dg/template/pr59930-2.C: Likewise.
+ * g++.old-deja/g++.pt/redecl1.C: Likewise.
+
2020-01-28 Jakub Jelinek <jakub@redhat.com>
PR target/93418
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-34314.C b/gcc/testsuite/g++.dg/cpp0x/vt-34314.C
index ee0ed01..b37cac5 100644
--- a/gcc/testsuite/g++.dg/cpp0x/vt-34314.C
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-34314.C
@@ -4,7 +4,7 @@ template<typename Fun, typename... Args> // { dg-error "template parameter" }
struct call;
template<typename Fun, typename Arg0>
-struct call // { dg-error "redeclared here" }
+struct call // { dg-message "note: redeclared here" }
{
template<typename Sig>
struct result;
@@ -21,7 +21,7 @@ template<typename Fun, int... N> // { dg-error "template parameter" }
struct call2;
template<typename Fun, int N>
-struct call2 // { dg-error "redeclared here" }
+struct call2 // { dg-message "note: redeclared here" }
{
template<typename Sig>
struct result;
@@ -37,7 +37,7 @@ template<typename Fun, template<typename> class... TT> // { dg-error "template p
struct call3;
template<typename Fun, template<typename> class TT>
-struct call3 // { dg-error "redeclared here" }
+struct call3 // { dg-message "note: redeclared here" }
{
template<typename Sig>
struct result;
diff --git a/gcc/testsuite/g++.dg/template/pr59930-2.C b/gcc/testsuite/g++.dg/template/pr59930-2.C
index a7e6ea4..65ec58e 100644
--- a/gcc/testsuite/g++.dg/template/pr59930-2.C
+++ b/gcc/testsuite/g++.dg/template/pr59930-2.C
@@ -6,7 +6,7 @@ namespace N {
// Injects N::N
template < T > friend class N;
// { dg-error "template parameter" "" { target *-*-* } .-1 }
- // { dg-error "redeclared" "" { target *-*-* } .-2 }
+ // { dg-message "note: redeclared" "" { target *-*-* } .-2 }
};
}
diff --git a/gcc/testsuite/g++.dg/template/pr92440.C b/gcc/testsuite/g++.dg/template/pr92440.C
new file mode 100644
index 0000000..20db5f1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/pr92440.C
@@ -0,0 +1,10 @@
+// PR c++/92440
+// { dg-do compile }
+
+template <int T> // { dg-error "template parameter" }
+struct S {
+ template <class U>
+ friend struct S; // { dg-message "note: redeclared here as" }
+};
+
+S<0> s;
diff --git a/gcc/testsuite/g++.dg/template/redecl2.C b/gcc/testsuite/g++.dg/template/redecl2.C
index 4dd432e6..31334f4 100644
--- a/gcc/testsuite/g++.dg/template/redecl2.C
+++ b/gcc/testsuite/g++.dg/template/redecl2.C
@@ -6,4 +6,4 @@
// non-type template parameter.
template <int i> struct X; // { dg-error "template parameter" }
-template <int* p> struct X; // { dg-error "redeclared here" }
+template <int* p> struct X; // { dg-message "note: redeclared here" }
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C b/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C
index 4a580e1..48517f5d 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C
@@ -16,7 +16,7 @@ template <class T> // { dg-error "template parameter" }
struct S3;
template <int I>
-struct S3; // { dg-error "redeclared here" }
+struct S3; // { dg-message "note: redeclared here" }
template <template <class T> class C>
-struct S3; // { dg-error "redeclared here" }
+struct S3; // { dg-message "note: redeclared here" }