Remove cast-as-lvalue extension.
authorMark Mitchell <mark@codesourcery.com>
Thu, 4 Sep 2003 07:16:43 +0000 (07:16 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Thu, 4 Sep 2003 07:16:43 +0000 (07:16 +0000)
commitd18a825116b013ed02847c1a2247fa9cec1364cf
tree5bb40582c760ac444032db79c71b9f81c183e39e
parentc5ef564bebaa4e7abb41636a565e43ddbeb268a6
Remove cast-as-lvalue extension.

* call.c (build_conditional_expr): Correct formatting.
(convert_like_real): Use lvalue_p, not non_cast_lvalue_p.
(initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p.
* cp-tree.h (non_cast_lvalue_p): Remove.
(real_non_cast_lvalue_p): Remove.
(non_cast_lvalue_or_else): Remove.
* tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter.
(real_lvalue_p): Adjust call to lvalue_p_1.
(non_cast_lvalue_p): Remove.
(non_cast_lvalue_or_else): Remove.
(lvalue_p): Adjust call to lvalue_p_1.
(lvalue_or_else): Simplify.
* typeck.c (build_unary_op): Use lvalue_or_else, not
non_cast_lvalue_or_else.
(build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p.

* doc/extend.texi: Document removal of cast-as-lvalue extension in
C++.

* g++.dg/expr/lval1.C: New test.
* g++.dg/ext/lvcast.C: Remove.

From-SVN: r71051
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/tree.c
gcc/cp/typeck.c
gcc/doc/extend.texi
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/expr/lval1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/lvcast.C [deleted file]