Require lvalues as specified by the standard.
authorJason Merrill <jason@redhat.com>
Mon, 27 Sep 2010 20:05:34 +0000 (16:05 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 27 Sep 2010 20:05:34 +0000 (16:05 -0400)
commit93c0e0bb1d729b142f698d42fb4a61ad23a52505
tree108a323659c8b36f70d1648d888403d8d41841bf
parenta77bfaebbf433f5559d936bc0ec7b32633f00865
Require lvalues as specified by the standard.

* typeck.c (lvalue_or_else): Use real_lvalue_p.
(cp_build_addr_expr_1): Split out of cp_build_unary_op.
(cp_build_addr_expr, cp_build_addr_expr_strict): Interfaces.
(decay_conversion, get_member_function_from_ptrfunc): Adjust.
(build_x_unary_op, build_reinterpret_cast_1): Adjust.
(build_const_cast_1): Adjust.
* cp-tree.h: Declare new fns.
* call.c (build_this, convert_like_real, build_over_call): Adjust.
(initialize_reference): Adjust.
* class.c (build_base_path, convert_to_base_statically): Adjust.
(build_vfn_ref, resolve_address_of_overloaded_function): Adjust.
* cvt.c (build_up_reference, convert_to_reference): Adjust.
* decl.c (register_dtor_fn): Adjust.
* decl2.c (build_offset_ref_call_from_tree): Adjust.
* except.c (initialize_handler_parm): Adjust.
* init.c (build_offset_ref, build_delete, build_vec_delete): Adjust.
* rtti.c (build_dynamic_cast_1, tinfo_base_init): Adjust.
* tree.c (stabilize_expr): Adjust.

From-SVN: r164666
18 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/cvt.c
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/except.c
gcc/cp/init.c
gcc/cp/rtti.c
gcc/cp/tree.c
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/rv-lvalue-req.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/complit11.C
gcc/testsuite/g++.old-deja/g++.law/temps1.C
gcc/testsuite/g++.old-deja/g++.ns/koenig6.C
gcc/testsuite/g++.old-deja/g++.oliva/partord1.C