Fortran : ICE in gfc_conv_scalarized_array_ref PR53298
authorMark Eggleston <markeggleston@gcc.gnu.org>
Fri, 17 Jul 2020 13:22:48 +0000 (14:22 +0100)
committerMark Eggleston <markeggleston@gcc.gnu.org>
Wed, 29 Jul 2020 10:16:38 +0000 (11:16 +0100)
commitc2e99836a2751b6d970ca6e50c1a368f5d2a2375
tree3b1400bfc24533ac0e088ca7b9909bc609b54462
parent12324b9a934654a5c3bf4a614853ded2e0a958af
Fortran  : ICE in gfc_conv_scalarized_array_ref PR53298

When an array of characters is an argument to a subroutine and
is accessed using (:)(1:) an ICE occurs.  The upper bound of the
substring does not have an expression and such should not have
a Scalarization State structure added to the Scalarization State
chain.

2020-07-29  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/fortran/

PR fortran/53298
* trans-array.c (gfc_walk_array_ref): If ref->ss.end is set
call gfc_get_scalar_ss.

2020-07-29  Mark Eggleston  <markeggleston@gcc.gnu.org>

gcc/testsuite/

PR fortran/53298
* gfortran.dg/pr53298.f90: New test.
gcc/fortran/trans-array.c
gcc/testsuite/gfortran.dg/pr53298.f90 [new file with mode: 0644]