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
This commit is contained in:
parent
7506ab1de5
commit
b4359e45b9
|
@ -1,3 +1,9 @@
|
||||||
|
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>
|
2011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||||||
|
|
||||||
Fixes for override/final.
|
Fixes for override/final.
|
||||||
|
|
|
@ -13250,7 +13250,8 @@ tsubst_copy_and_build (tree t,
|
||||||
ce->value = tsubst_pack_expansion (ce->value, args, complain,
|
ce->value = tsubst_pack_expansion (ce->value, args, complain,
|
||||||
in_decl);
|
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)
|
else if (TREE_VEC_LENGTH (ce->value) == 1)
|
||||||
/* Just move the argument into place. */
|
/* Just move the argument into place. */
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2011-05-10 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* g++.dg/cpp0x/variadic108.C: New.
|
||||||
|
|
||||||
2011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
|
2011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||||||
|
|
||||||
* g++.dg/inherit/virtual9.C: Extend.
|
* g++.dg/inherit/virtual9.C: Extend.
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
// 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);
|
Loading…
Reference in New Issue