PR c++/48736
* pt.c (tsubst_copy_and_build): Handle substitution of a pack
expansion producing another expansion.
From-SVN: r173627
+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.
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.
--- /dev/null
+// 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);