* method.c (add_one_base_init): Handle base constructor
taking rvalue reference parm.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195990
138bc75d-0d04-0410-961f-
82ee72b054a4
2013-02-12 Jason Merrill <jason@redhat.com>
+ PR c++/56285
+ * method.c (add_one_base_init): Handle base constructor
+ taking rvalue reference parm.
+
PR c++/56291
* semantics.c (sort_constexpr_mem_initializers): Handle
vptr out of order.
for (; parm; parm = DECL_CHAIN (parm))
{
tree exp = convert_from_reference (parm);
- if (TREE_CODE (TREE_TYPE (parm)) != REFERENCE_TYPE)
+ if (TREE_CODE (TREE_TYPE (parm)) != REFERENCE_TYPE
+ || TYPE_REF_IS_RVALUE (TREE_TYPE (parm)))
exp = move (exp);
*p = build_tree_list (NULL_TREE, exp);
p = &TREE_CHAIN (*p);
--- /dev/null
+// PR c++/56285
+// { dg-options -std=c++11 }
+
+struct foo {
+ explicit foo(int&&) {}
+};
+
+struct bar: private foo {
+ using foo::foo;
+};
+
+int main()
+{
+ bar b { 42 };
+}