]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/trans-array.cc
re PR fortran/67171 (sourced allocation)
authorPaul Thomas <pault@gcc.gnu.org>
Sun, 25 Oct 2015 21:31:12 +0000 (21:31 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sun, 25 Oct 2015 21:31:12 +0000 (21:31 +0000)
commit6a4236ceb1020bcb8af45f2497672435d75c2c84
treedad621aa8de0b50bc5d3198c9849d312a7e7ddca
parent9621d52481aef48baf90fb0008b4e2ff403bc90b
re PR fortran/67171 (sourced allocation)

2015-01-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67171
* trans-array.c (structure_alloc_comps): On deallocation of
class components, reset the vptr to the declared type vtable
and reset the _len field of unlimited polymorphic components.
*trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on
allocatable component references to the right of part reference
with non-zero rank and return NULL.
(gfc_reset_vptr): Simplify this function by using the function
gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE.
(gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns
NULL return.
* trans-stmt.c (gfc_trans_allocate): Rely on the use of
gfc_trans_assignment if expr3 is a variable expression since
this deals correctly with array sections.

2015-01-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67171
* gfortran.dg/allocate_with_source_12.f03: New test

PR fortran/61819
* gfortran.dg/allocate_with_source_13.f03: New test

PR fortran/61830
* gfortran.dg/allocate_with_source_14.f03: New test

From-SVN: r229303
gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-stmt.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/allocate_with_source_12.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/allocate_with_source_13.f03 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/allocate_with_source_14.f03 [new file with mode: 0644]