re PR c++/50303 ([C++0x] Segfault with variadic template template parameters)

PR c++/50303
	* pt.c (tsubst_pack_expansion): Use tsubst_expr for template
	template parameters.

From-SVN: r186519
This commit is contained in:
Jason Merrill 2012-04-16 22:29:27 -04:00 committed by Jason Merrill
parent a49870d5b2
commit 99d4f8f704
4 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-04-16 Jason Merrill <jason@redhat.com>
PR c++/50303
* pt.c (tsubst_pack_expansion): Use tsubst_expr for template
template parameters.
2012-04-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/49152

View File

@ -9518,7 +9518,7 @@ tsubst_pack_expansion (tree t, tree args, tsubst_flags_t complain,
}
/* Substitute into the PATTERN with the altered arguments. */
if (TREE_CODE (t) == EXPR_PACK_EXPANSION)
if (!TYPE_P (pattern))
TREE_VEC_ELT (result, i) =
tsubst_expr (pattern, args, complain, in_decl,
/*integral_constant_expression_p=*/false);

View File

@ -1,3 +1,8 @@
2012-04-16 Jason Merrill <jason@redhat.com>
PR c++/50303
* g++.dg/cpp0x/variadic128.C: New.
2012-04-16 Tobias Burnus <burnus@net-b.de>
PR fortran/52864

View File

@ -0,0 +1,16 @@
// PR c++/50303
// { dg-do compile { target c++11 } }
template<typename Interface>
struct A1 {
};
template<template<class I> class... Actions>
void g2() {
g2<Actions...>();
}
int main()
{
g2<A1>();
}