]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/primary.c
re PR fortran/67177 (MOVE_ALLOC not automatically allocating deferred character array...
authorPaul Thomas <pault@gcc.gnu.org>
Sun, 18 Oct 2015 09:31:21 +0000 (09:31 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sun, 18 Oct 2015 09:31:21 +0000 (09:31 +0000)
commit38217d3ee7c6e1fee58331f10e5c78e40441009b
treea0441a3335a1f9021773ff84b515947483dce8b6
parent2fe7f26c18c36933430add48d1139030c4a2f8d4
re PR fortran/67177 (MOVE_ALLOC not automatically allocating deferred character arrays in derived types)

2015-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67177
PR fortran/67977
* primary.c (match_substring): Add an argument 'deferred' to
flag that a substring reference with null start and end should
not be optimized away for deferred length strings.
(match_string_constant, gfc_match_rvalue): Set the argument.
* trans-expr.c (alloc_scalar_allocatable_for_assignment): If
there is a substring reference return.
* trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred
characters, assign the 'from' string length to the 'to' string
length. If the 'from' expression is deferred, set its string
length to zero. If the 'to' expression has allocatable
components, deallocate them.

2015-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67177
* gfortran.dg/move_alloc_15.f90: New test
* gfortran.dg/move_alloc_16.f90: New test

PR fortran/67977
* gfortran.dg/deferred_character_assignment_1.f90: New test

From-SVN: r228940
gcc/fortran/ChangeLog
gcc/fortran/primary.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-intrinsic.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/deferred_character_assignment_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/move_alloc_15.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/move_alloc_16.f90 [new file with mode: 0644]