2005-10-23 Paul Thomas <pault@gcc.gnu.org>
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Oct 2005 06:59:17 +0000 (06:59 +0000)
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Oct 2005 06:59:17 +0000 (06:59 +0000)
commit70464f87e52cb1ba7f127872b93b1356cc612bd1
tree9f2a2b5bf1f6c52982a3bc0ed7bb093beffbac06
parent9ca4e4da50e54fc913e891041207fdb4d80da3cf
2005-10-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/18022
* trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
if there is a component ref during an array ref to force
use of temporary in assignment.

PR fortran/24311
PR fortran/24384
* fortran/iresolve.c (check_charlen_present): New function to
add a charlen to the typespec, in the case of constant
expressions.
(gfc_resolve_merge, gfc_resolve_spread): Call.the above.
(gfc_resolve_spread): Make calls to library functions that
handle the case of the spread intrinsic with a scalar source.
* libgfortran/intrinsics/spread_generic.c (spread_internal
_scalar): New function that handles the special case of spread
with a scalar source. This has interface functions -
(spread_scalar, spread_char_scalar): New functions to interface
with the calls specified in gfc_resolve_spread.

2005-10-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/18022
gfortran.dg/assign_func_dtcomp_1.f90: New test.

PR fortran/24311
gfortran.dg/merge_char_const.f90: New test.

PR fortran/24384
gfortran.dg/spread_scalar_source.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105810 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/fortran/ChangeLog
gcc/fortran/iresolve.c
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/assign_func_dtcomp_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/merge_char_const.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/spread_scalar_source.f90 [new file with mode: 0755]
libgfortran/ChangeLog
libgfortran/intrinsics/spread_generic.c