re PR c++/13310 (Tree check error in dependent_template_p)

PR c++/13310
	* pt.c (dependent_template_p): Handle OVERLOADs.

	PR c++/13310
	* g++.dg/template/crash15.C: New test.

From-SVN: r74649
This commit is contained in:
Mark Mitchell 2003-12-15 21:55:19 +00:00 committed by Mark Mitchell
parent 3fe1373814
commit b95cc51a28
4 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2003-12-15 Mark Mitchell <mark@codesourcery.com>
PR c++/13310
* pt.c (dependent_template_p): Handle OVERLOADs.
2003-12-15 Mark Mitchell <mark@codesourcery.com>
PR c++/13243

View File

@ -11912,6 +11912,17 @@ any_dependent_template_arguments_p (tree args)
bool
dependent_template_p (tree tmpl)
{
if (TREE_CODE (tmpl) == OVERLOAD)
{
while (tmpl)
{
if (dependent_template_p (OVL_FUNCTION (tmpl)))
return true;
tmpl = OVL_CHAIN (tmpl);
}
return false;
}
/* Template template parameters are dependent. */
if (DECL_TEMPLATE_TEMPLATE_PARM_P (tmpl)
|| TREE_CODE (tmpl) == TEMPLATE_TEMPLATE_PARM)

View File

@ -1,3 +1,8 @@
2003-12-15 Mark Mitchell <mark@codesourcery.com>
PR c++/13310
* g++.dg/template/crash15.C: New test.
2003-12-15 Geoffrey Keating <geoffk@apple.com>
* g++.old-deja/g++.pt/vaarg3.C: Don't expect an error for passing

View File

@ -0,0 +1,9 @@
// PR c++/13310
struct A {};
template <typename> void foo()
{
A a;
a.foo<int>(); // { dg-error "" }
}