Commit 63d34078 by Jakub Jelinek Committed by Jakub Jelinek

re PR c++/33962 (ICE at call to overloaded template function with…

re PR c++/33962 (ICE at call to overloaded template function with variable-length function argument list)

	PR c++/33962
	* pt.c (more_specialized_fn): Don't segfault if one or
	both argument list end with ellipsis.

	* g++.dg/overload/template3.C: New test.

From-SVN: r130308
parent cb96cf3b
2007-11-20 Jakub Jelinek <jakub@redhat.com>
PR c++/33962
* pt.c (more_specialized_fn): Don't segfault if one or
both argument list end with ellipsis.
2007-11-18 Jakub Jelinek <jakub@redhat.com> 2007-11-18 Jakub Jelinek <jakub@redhat.com>
PR c++/30988 PR c++/30988
......
...@@ -13523,6 +13523,10 @@ more_specialized_fn (tree pat1, tree pat2, int len) ...@@ -13523,6 +13523,10 @@ more_specialized_fn (tree pat1, tree pat2, int len)
args1 = TREE_CHAIN (args1); args1 = TREE_CHAIN (args1);
args2 = TREE_CHAIN (args2); args2 = TREE_CHAIN (args2);
/* Stop when an ellipsis is seen. */
if (args1 == NULL_TREE || args2 == NULL_TREE)
break;
} }
processing_template_decl--; processing_template_decl--;
......
2007-11-20 Jakub Jelinek <jakub@redhat.com>
PR c++/33962
* g++.dg/overload/template3.C: New test.
2007-11-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2007-11-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/33317 PR fortran/33317
// PR c++/33962
// { dg-do compile }
template <class T> struct A;
template <class U> void foo (const U &x, ...);
template <class T> void foo (const A<T> &x, ...);
void bar (const A<int> &x, const char *y)
{
foo (x, y);
}
/* { dg-final { scan-assembler "_Z3fooIiEvRK1AIT_Ez" } } */
/* { dg-final { scan-assembler-not "_Z3fooI1AIiEEvRKT_z" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment