re PR fortran/91726 (ICE in gfc_conv_array_ref, at fortran/trans-array.c:3612)
authorPaul Thomas <pault@gcc.gnu.org>
Sun, 29 Sep 2019 10:12:42 +0000 (10:12 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sun, 29 Sep 2019 10:12:42 +0000 (10:12 +0000)
commit56b070e3bbc4364f86357d6651fe1391464db6d6
tree5f12959555e00cf9a1cbc41639212e59d4d5a50d
parentae517a31c9508d9b0424e7a057d05840cf2caaf5
re PR fortran/91726 (ICE in gfc_conv_array_ref, at fortran/trans-array.c:3612)

2019-09-29  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/91726
* resolve.c (gfc_expr_to_initialize): Bail out with a copy of
the original expression if the array ref is a scalar and the
array_spec has corank.
* trans-array.c (gfc_conv_array_ref): Such expressions are OK
even if the array ref codimen is zero.
* trans-expr.c (gfc_get_class_from_expr): New function taken
from gfc_get_vptr_from_expr.
(gfc_get_vptr_from_expr): Call new function.
* trans-stmt.c (trans_associate_var): If one of these is a
target expression, extract the class expression from the target
and copy its fields to a new target variable.
* trans.h : Add prototype for gfc_get_class_from_expr.

2019-09-29  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/91726
* gfortran.dg/coarray_poly_9.f90 : New test.

From-SVN: r276269
gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/fortran/trans-array.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-stmt.c
gcc/fortran/trans.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/coarray_poly_9.f90 [new file with mode: 0644]