Commit b4359e45 by Jason Merrill Committed by Jason Merrill

re PR c++/48736 ([C++0x] ICE during list-initialization with variadics)

	PR c++/48736
	* pt.c (tsubst_copy_and_build): Handle substitution of a pack
	expansion producing another expansion.

From-SVN: r173627
parent 7506ab1d
2011-05-10 Jason Merrill <jason@redhat.com>
PR c++/48736
* pt.c (tsubst_copy_and_build): Handle substitution of a pack
expansion producing another expansion.
2011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
Fixes for override/final.
......
......@@ -13250,7 +13250,8 @@ tsubst_copy_and_build (tree t,
ce->value = tsubst_pack_expansion (ce->value, args, complain,
in_decl);
if (ce->value == error_mark_node)
if (ce->value == error_mark_node
|| PACK_EXPANSION_P (ce->value))
;
else if (TREE_VEC_LENGTH (ce->value) == 1)
/* Just move the argument into place. */
......
2011-05-10 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/variadic108.C: New.
2011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
* g++.dg/inherit/virtual9.C: Extend.
......
// PR c++/48736
// { dg-options -std=c++0x }
template<class T>
T&& create();
template<class T, class... Args,
class = decltype(T{create<Args>()...}) // Line X
>
char f(int);
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