From: Kriang Lerdsuwanakij Date: Fri, 31 Jan 2003 16:28:06 +0000 (+0000) Subject: re PR c++/8849 (ICE in resolve_overloaded_unification for invalid code) X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=db0f613dfa664a3c657ba3245f49d42a7431587e;p=platform%2Fupstream%2Fgcc.git re PR c++/8849 (ICE in resolve_overloaded_unification for invalid code) PR c++/8849 * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL. * g++.dg/template/ptrmem4.C: New test. From-SVN: r62181 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4589a91..5c947c3 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-01-31 Kriang Lerdsuwanakij + + PR c++/8849 + * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL. + 2003-01-31 Nathan Sidwell * cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index dc2a9e2..e3e0211 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -8910,7 +8910,8 @@ resolve_overloaded_unification (tparms, targs, parm, arg, strict, } } } - else if (TREE_CODE (arg) == OVERLOAD) + else if (TREE_CODE (arg) == OVERLOAD + || TREE_CODE (arg) == FUNCTION_DECL) { for (; arg; arg = OVL_NEXT (arg)) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8704a8d..87a814f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-01-31 Kriang Lerdsuwanakij + + PR c++/8849 + * g++.dg/template/ptrmem4.C: New test. + 2003-01-29 Mark Mitchell * g++.dg/parser/constant1.C: New test. diff --git a/gcc/testsuite/g++.dg/template/ptrmem4.C b/gcc/testsuite/g++.dg/template/ptrmem4.C new file mode 100644 index 0000000..2310728 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/ptrmem4.C @@ -0,0 +1,20 @@ +// { dg-do compile } + +// Origin: Scott Snyder + +// PR c++/8849 +// Pointer to member function template argument deduction ICE. + + +template void queryAliases(CONT& fill_me); // { dg-error "argument" } + +struct SpyExample +{ + void ready(); + void inputs(); +}; + +void SpyExample::ready() +{ + queryAliases(inputs); // { dg-error "convert" } +}