Fix missing deep copy when assigning a DT constructor to an array
authorMikael Morin <mikael@gcc.gnu.org>
Sat, 26 Sep 2015 20:34:39 +0000 (20:34 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Sat, 26 Sep 2015 20:34:39 +0000 (20:34 +0000)
commit33c330b13ab7a4db3005eea671aeb80442304b10
treeec9f13dedf8f408ae6df0bfbb34b42e116f1d59d
parent4f283c42c79477c89dcc45d5c4f509787283f0bf
Fix missing deep copy when assigning a DT constructor to an array

This adds the missing deep copy when assiging a constructor of a derived
type with allocatable components to an array.

The check for constantness is removed so that the deep_copy argument passed
to gfc_trans_scalar_assign is set to true.

PR fortran/67721
gcc/fortran/
* trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
condition guarding deep copy.
gcc/testsuite/
* gfortran.dg/alloc_comp_deep_copy_3.f03: New.

From-SVN: r228170
gcc/fortran/ChangeLog
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_3.f03 [new file with mode: 0644]