diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2003-03-11 05:34:45 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2003-03-11 05:34:45 -0500 |
commit | 220dd8ca3411661ea6b821fb90f39ed2153f385c (patch) | |
tree | 31998bc8b9803fe62d5c9fd2e2e1390008a7d55f | |
parent | 5b8e011cf6958419bf1c72940c3fd5fd9e6a791b (diff) | |
download | gcc-220dd8ca3411661ea6b821fb90f39ed2153f385c.zip gcc-220dd8ca3411661ea6b821fb90f39ed2153f385c.tar.gz gcc-220dd8ca3411661ea6b821fb90f39ed2153f385c.tar.bz2 |
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
-rw-r--r-- | gcc/testsuite/g++.dg/template/member2.C | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/err1.C | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/testsuite/g++.dg/template/member2.C b/gcc/testsuite/g++.dg/template/member2.C new file mode 100644 index 0000000..372c778 --- /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<class B> + void ReadPod(); +}; + +void BadgerBuf::ReadPod () + { ReadPod<int> (); } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/err1.C b/gcc/testsuite/g++.old-deja/g++.mike/err1.C index 8748c78..3f234bb 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 <class T> void gorf::snarf() { return; } // ERROR - |