Go to file
Paul Thomas 08113c7398 re PR fortran/31205 (aliased operator assignment produces wrong result)
2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	PR fortran/32842
	* trans-expr.c (gfc_conv_function_call): Remove the default
	initialization of intent(out) derived types.
	* symbol.c (gfc_lval_expr_from_sym): New function.
	* matchexp.c (gfc_get_parentheses): Return argument, if it is
	character and posseses a ref.
	* gfortran.h : Add prototype for gfc_lval_expr_from_sym.
	* resolve.c (has_default_initializer): Move higher up in file.
	(resolve_code): On detecting an interface assignment, check
	if the rhs and the lhs are the same symbol.  If this is so,
	enclose the rhs in parenetheses to generate a temporary and
	prevent any possible aliasing.
	(apply_default_init): Remove code making the lval and call
	gfc_lval_expr_from_sym instead.
	(resolve_operator): Give a parentheses expression a type-
	spec if it has no type.
	* trans-decl.c (gfc_trans_deferred_vars): Apply the a default
	initializer, if any, to an intent(out) derived type, using
	gfc_lval_expr_from_sym and gfc_trans_assignment.  Check if
	the dummy is present.


2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	* gfortran.dg/alloc_comp_basics_1.f90 : Restore number of
	"deallocates" to 24, since patch has code rid of much spurious
	code.
	* gfortran.dg/interface_assignment_1.f90 : New test.

	PR fortran/32842
	* gfortran.dg/interface_assignment_2.f90 : New test.

From-SVN: r126885
2007-07-24 19:15:27 +00:00
boehm-gc
config
contrib
fixincludes re PR target/32641 (C99 fpclassify, isinf, isfinite, isnormal may raise FP exceptions) 2007-07-18 20:22:32 +00:00
gcc re PR fortran/31205 (aliased operator assignment produces wrong result) 2007-07-24 19:15:27 +00:00
gnattools
include xtensa-config.h (XCHAL_HAVE_THREADPTR): New. 2007-07-18 18:51:21 +00:00
INSTALL
intl
libada
libcpp
libdecnumber
libffi configure.ac (i?86-*-solaris2.1[0-9]): Set TARGET to X86_64. 2007-07-16 17:05:41 +00:00
libgcc
libgfortran ChangeLog: Correct entry. 2007-07-24 14:58:20 +02:00
libgomp
libiberty argv.c (writeargv): Fix typo in inline documentation. 2007-07-23 13:29:17 -04:00
libjava configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC. 2007-07-23 12:51:36 +00:00
libmudflap
libobjc
libssp
libstdc++-v3 re PR bootstrap/3456 (bootstrapping gcc-3.0 with threadmodel=posix fails on IRIX64 6.5) 2007-07-16 17:21:10 +00:00
maintainer-scripts
zlib
ABOUT-NLS
ChangeLog COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure
configure.ac
COPYING
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
COPYING3.LIB COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
COPYING.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS MAINTAINERS (S/390 port maintainer): Remove my co-maintainer tag. 2007-07-16 08:11:23 +00:00
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.