From 220dd8ca3411661ea6b821fb90f39ed2153f385c Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 11 Mar 2003 05:34:45 -0500 Subject: [PATCH] re PR c++/8660 (template overloading ICE in tsubst_expr, at cp/pt.c:7644) PR c++/8660 * decl2.c (check_classfn): A member template only matches a member template. [[Split portion of a mixed commit.]] From-SVN: r64167.2 --- gcc/testsuite/g++.dg/template/member2.C | 13 +++++++++++++ gcc/testsuite/g++.old-deja/g++.mike/err1.C | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/template/member2.C diff --git a/gcc/testsuite/g++.dg/template/member2.C b/gcc/testsuite/g++.dg/template/member2.C new file mode 100644 index 00000000000..372c778a756 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/member2.C @@ -0,0 +1,13 @@ +// PR c++/8660 +// Bug: we were treating the definition of the non-template as a definition +// of the template, which broke. + +struct BadgerBuf +{ + void ReadPod(); + template + void ReadPod(); +}; + +void BadgerBuf::ReadPod () + { ReadPod (); } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/err1.C b/gcc/testsuite/g++.old-deja/g++.mike/err1.C index 8748c7860b1..3f234bb92a4 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/err1.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/err1.C @@ -2,7 +2,7 @@ struct gorf { int stuff; - void snarf(); + void snarf(); // ERROR - }; template void gorf::snarf() { return; } // ERROR - -- 2.30.2