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
This commit is contained in:
parent
cb96cf3b9d
commit
63d34078b6
|
@ -1,3 +1,9 @@
|
|||
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>
|
||||
|
||||
PR c++/30988
|
||||
|
|
|
@ -13523,6 +13523,10 @@ more_specialized_fn (tree pat1, tree pat2, int len)
|
|||
|
||||
args1 = TREE_CHAIN (args1);
|
||||
args2 = TREE_CHAIN (args2);
|
||||
|
||||
/* Stop when an ellipsis is seen. */
|
||||
if (args1 == NULL_TREE || args2 == NULL_TREE)
|
||||
break;
|
||||
}
|
||||
|
||||
processing_template_decl--;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
PR fortran/33317
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
// 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" } } */
|
Loading…
Reference in New Issue