Go to file
Roger Sayle d211a298ce re PR c++/7503 ((x < Y ? X : Y) used for assignment causes wrong code)
PR c++/7503
	* tree.c (lvalue_p_1):  Disallow MIN_EXPR and MAX_EXPR as lvalues
	if either operand has side-effects.
	* typeck.c (rationalize_conditional_expr): Assert that neither
	operand of MIN_EXPR or MAX_EXPR has side-effects.
	(build_modify_expr):  Add support for MIN_EXPR and MAX_EXPR.
	Check that the "lhs" is a valid lvalue, i.e. that neither operand
	of a MIN_EXPR or MAX_EXPR has a side-effect.

	* g++.dg/opt/pr7503-1.C: New testcase for COND_EXPR lvalues.
	* g++.dg/opt/pr7503-2.C: New testcase for <? and >? lvalues.
	* g++.dg/opt/pr7503-3.C: New testcase for invalid <? lvalue errors.
	* g++.dg/opt/pr7503-4.C: New testcase for <?= and >?= assignments.
	* g++.dg/opt/pr7503-5.C: New testcase for side-effects with <?=.

From-SVN: r87810
2004-09-21 16:20:12 +00:00
boehm-gc
config
contrib
fastjar
fixincludes
gcc re PR c++/7503 ((x < Y ? X : Y) used for assignment causes wrong code) 2004-09-21 16:20:12 +00:00
include
INSTALL
intl
libada
libcpp
libffi
libgfortran libgfortran.h: define gfc_alloca() 2004-09-21 14:38:34 +02:00
libiberty
libjava 2004-09-21 Casey Marshall <csm@gnu.org> 2004-09-21 17:30:20 +02:00
libmudflap
libobjc
libstdc++-v3 PR libstdc++/12882 (cont) 2004-09-21 09:06:08 +00:00
maintainer-scripts
zlib
.cvsignore
ABOUT-NLS
ChangeLog
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.if
config.rpath
config.sub
configure
configure.in
COPYING
COPYING.LIB
depcomp
install-sh
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
missing
mkdep
mkinstalldirs
move-if-change
README
README.SCO
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.