re PR fortran/59414 ([OOP] ICE in in gfc_conv_expr_descriptor on ALLOCATE inside...
authorPaul Thomas <pault@gcc.gnu.org>
Tue, 28 Jan 2014 20:10:22 +0000 (20:10 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Tue, 28 Jan 2014 20:10:22 +0000 (20:10 +0000)
commit6a4b5f71c97dc3a2794921710ebf96d4515735d2
tree848c6bdadc4dc840eac357f9bf8e7960d97c859a
parente191f502605992cb2344af710b55fa125a91eee3
re PR fortran/59414 ([OOP] ICE in in gfc_conv_expr_descriptor on ALLOCATE inside SELECT TYPE)

2014-01-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/59414
* trans-stmt.c (gfc_trans_allocate): Before the pointer
assignment to transfer the source _vptr to a class allocate
expression, the final class reference should be exposed. The
tail that includes the _data and array references is stored.
This reduced expression is transferred to 'lhs' and the _vptr
added. Then the tail is restored to the allocate expression.

2014-01-28  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/59414
* gfortran.dg/allocate_class_3.f90 : New test

From-SVN: r207204
gcc/fortran/ChangeLog
gcc/fortran/trans-stmt.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/allocate_class_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/elemental_by_value_1.f90 [new file with mode: 0644]