aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/semantics.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2014-10-09 14:05:17 -0400
committerJason Merrill <jason@gcc.gnu.org>2014-10-09 14:05:17 -0400
commit96e780c0873477bb2b9ab34306e4694dad6626aa (patch)
treeee1cf2b2501e26a4d1ab22ef58e0584d471a3fa7 /gcc/cp/semantics.c
parent94c4084cf009939db425be4f6552b7f29f8587b3 (diff)
downloadgcc-96e780c0873477bb2b9ab34306e4694dad6626aa.zip
gcc-96e780c0873477bb2b9ab34306e4694dad6626aa.tar.gz
gcc-96e780c0873477bb2b9ab34306e4694dad6626aa.tar.bz2
re PR c++/63437 ([C++14] Parenthesized "movable but not copyable" object doesn't compile in return statement)
PR c++/63437 * cp-tree.h (REF_PARENTHESIZED_P): Also allow INDIRECT_REF. * semantics.c (force_paren_expr): And set it. * typeck.c (check_return_expr): And handle it. From-SVN: r216042
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r--gcc/cp/semantics.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index b11ec09..ba09e72 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1637,6 +1637,8 @@ force_paren_expr (tree expr)
bool rval = !!(kind & clk_rvalueref);
type = cp_build_reference_type (type, rval);
expr = build_static_cast (type, expr, tf_error);
+ if (expr != error_mark_node)
+ REF_PARENTHESIZED_P (expr) = true;
}
}