re PR fortran/83118 (Bad intrinsic assignment of class(*) array component of derived...
authorPaul Thomas <pault@gcc.gnu.org>
Thu, 21 Jun 2018 17:34:31 +0000 (17:34 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Thu, 21 Jun 2018 17:34:31 +0000 (17:34 +0000)
commit75382a9665aa26d35ed2d5f18b2943223ab07b05
treeb16d6362bc01c10d44f13604f3b352d4176cd089
parent7792f13c845a8dc97e6b0a8023d81c67e8d650d2
re PR fortran/83118 (Bad intrinsic assignment of class(*) array component of derived type)

2018-06-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83118
* resolve.c (resolve_ordinary_assign): Force the creation of a
vtable for assignment of non-polymorphic expressions to an
unlimited polymorphic object.
* trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
size of the rhs type for such assignments. Set the dtype, _len
and vptrs appropriately.
* trans-expr.c (gfc_trans_assignment): Force the use of the
_copy function for these assignments.

2018-06-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/83118
* gfortran.dg/unlimited_polymorphic_30.f03: New test.

From-SVN: r261857
gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/fortran/trans-array.c
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/unlimited_polymorphic_30.f03 [new file with mode: 0644]