From: Nathan Sidwell Date: Fri, 18 Oct 2002 08:17:57 +0000 (+0000) Subject: re PR c++/7676 (Member template function overloading problem) X-Git-Tag: releases/gcc-3.2.1~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d054123bf7c5870fdbe90094ac8e39e184add2f;p=thirdparty%2Fgcc.git re PR c++/7676 (Member template function overloading problem) cp: PR c++/7676 * class.c (add_method): Compare template parms too. testsuite: * g++.dg/overload/member2.C: New test. From-SVN: r58281 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4de6af480f33..491d84eed423 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2002-10-18 Nathan Sidwell + + PR c++/7676 + * class.c (add_method): Compare template parms too. + 2002-10-17 Mark Mitchell * mangle.c (globals): Add entity and need_abi_warning. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 9ae0cf144195..6bb1e4e945cd 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -945,6 +945,13 @@ add_method (type, method, error_p) && (TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms1))) != TYPE_QUALS (TREE_TYPE (TREE_VALUE (parms2))))) same = 0; + + /* For templates, the template parms must be identical. */ + if (TREE_CODE (fn) == TEMPLATE_DECL + && !comp_template_parms (DECL_TEMPLATE_PARMS (fn), + DECL_TEMPLATE_PARMS (method))) + same = 0; + if (! DECL_STATIC_FUNCTION_P (fn)) parms1 = TREE_CHAIN (parms1); if (! DECL_STATIC_FUNCTION_P (method)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7129c2f5d420..cc1e7f6cce48 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2002-10-18 Nathan Sidwell + + PR c++/7676 + * g++.dg/overload/method2.C: New test. + 2002-10-17 Mark Mitchell PR c++/7584