Go to file
Richard Sandiford 7a70c12d9b re PR fortran/19239 ([4.0 only] gfortran ICE on vector subscript expressions)
PR fortran/19239
	* Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
	* dependency.h (gfc_ref_needs_temporary_p): Declare.
	* dependency.c (gfc_ref_needs_temporary_p): New function.
	(gfc_check_fncall_dependency): Use it instead of inlined check.
	By so doing, take advantage of the fact that character substrings
	within an array reference also need a temporary.
	* trans.h (GFC_SS_VECTOR): Adjust comment.
	* trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
	(gfc_set_vector_loop_bounds): New function.
	(gfc_add_loop_ss_code): Call it after evaluating the subscripts of
	a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
	the vector expression and caching its descriptor for use within
	the loop.
	(gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
	(gfc_conv_array_index_offset): Handle scalar, vector and range
	dimensions as separate cases of a switch statement.  In the vector
	case, use the loop variable to calculate a vector index and use the
	referenced element as the dimension's index.  Perform bounds checking
	on this final index.
	(gfc_conv_section_upper_bound): Return null for vector indexes.
	(gfc_conv_section_startstride): Give vector indexes a start value
	of 0 and a stride of 1.
	(gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
	(gfc_conv_expr_descriptor): Expand comments.  Generalize the
	handling of the !want_pointer && !direct_byref case.  Use
	gfc_ref_needs_temporary_p to decide whether the variable case
	needs a temporary.
	(gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
	GFC_SS_VECTOR index.
	* trans-expr.c: Include dependency.h.
	(gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.

2005-09-09  Richard Sandiford  <richard@codesourcery.com>

	PR fortran/21104
	* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
	from trans-expr.c.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Declare.
	* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
	(gfc_trans_allocate_array_storage): Replace loop argument with
	separate pre and post blocks.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	Update call to gfc_trans_allocate_array_storage.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
	interface to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
	Moved to trans.h.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Make extern.
	(gfc_conv_function_call): Build an interface mapping for array
	return values too.  Call gfc_set_loop_bounds_from_array_spec.
	Adjust call to gfc_trans_allocate_temp_array so that code is
	added to SE rather than LOOP.

From-SVN: r104077
2005-09-09 06:34:08 +00:00
boehm-gc re PR boehm-gc/23662 (Binaries generated by arm-linux-gcj segfault on execution on arm target) 2005-09-06 14:22:01 +00:00
config configure.in: Replace NCN_STRICT_CHECK_TOOL with NCN_STRICT_CHECK_TOOLS... 2005-08-12 14:18:46 +00:00
contrib * gcc_update: Update dependencies for libjava/aclocal.m4. 2005-08-23 10:55:08 +10:00
fastjar
fixincludes All files: Update with new FSF address. 2005-08-15 00:50:43 +00:00
gcc re PR fortran/19239 ([4.0 only] gfortran ICE on vector subscript expressions) 2005-09-09 06:34:08 +00:00
gnattools
include floatformat.c (floatformat_always_valid): Change type of last argument to `void *'. 2005-08-17 13:30:47 -04:00
INSTALL
intl
libada
libcpp be.po, [...]: Update. 2005-09-04 13:28:33 +01:00
libffi re PR target/23404 (gij trashes args of functions with more than 8 fp args) 2005-08-25 10:24:54 +09:30
libgfortran re PR fortran/12840 ([4.0 only] Unable to find scalarization loop specifier) 2005-09-09 06:00:40 +00:00
libiberty floatformat.c (floatformat_always_valid): Change type of last argument to `void *'. 2005-08-17 13:30:47 -04:00
libjava re PR libgcj/23761 (java.library.path doesn't affect module loading path) 2005-09-08 21:26:25 +00:00
libmudflap Fix FreeBSD fopen instrumentation. 2005-08-22 17:12:18 -07:00
libobjc re PR libobjc/23108 (alignment bug in libobjc/archive.c) 2005-09-04 10:05:39 -07:00
libssp ALL: Update FSF address. 2005-08-17 03:26:45 +00:00
libstdc++-v3 23465.cc: Reduce maximum size and lf. 2005-09-02 16:23:39 +00:00
maintainer-scripts gcc_release: Update with FSF address. 2005-08-15 01:01:02 +00:00
zlib
.cvsignore
ABOUT-NLS
ChangeLog configure.in (*-*-vxworks*): Add target-libstdc++-v3 to noconfigdirs. 2005-09-01 17:42:56 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure configure.in (*-*-vxworks*): Add target-libstdc++-v3 to noconfigdirs. 2005-09-01 17:42:56 +00:00
configure.in configure.in (*-*-vxworks*): Add target-libstdc++-v3 to noconfigdirs. 2005-09-01 17:42:56 +00:00
COPYING
COPYING.LIB
depcomp
install-sh
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh
MAINTAINERS * MAINTAINERS: Add self as ms1 maintainer. 2005-08-22 16:54:35 +00:00
Makefile.def Makefile.def (libssp): Add to lang_env_dependencies. 2005-08-20 13:43:17 +00:00
Makefile.in Makefile.def (libssp): Add to lang_env_dependencies. 2005-08-20 13:43:17 +00:00
Makefile.tpl Makefile.tpl: (USUAL_CC_FOR_TARGET): Add missing trailing slash. 2005-08-17 15:59:29 +00:00
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.