PR fortran/95979 - ICE in get_kind, at fortran/simplify.c:129
authorHarald Anlauf <anlauf@gmx.de>
Fri, 16 Oct 2020 20:17:46 +0000 (22:17 +0200)
committerHarald Anlauf <anlauf@gmx.de>
Fri, 16 Oct 2020 20:17:46 +0000 (22:17 +0200)
commit02629b116eed7c6911ef0eb2ef97e1883e9fb1de
tree93f23a96b872c6f78d8cd527b4e10fdd04a45e2c
parent3e8d8f3b883cbcc19974f6b2438f54b05769a76c
PR fortran/95979 - ICE in get_kind, at fortran/simplify.c:129

Simplification of the elemental intrinsic INDEX with constant array-valued
arguments failed with an ICE or did not reduce to a constant array, depending
also on the presence of the optional KIND argument.  Add a further attempt of
simplification in the case of elemental intrinsics, and make sure the KIND
argument is not removed prematurely during simplification of INDEX.

gcc/fortran/ChangeLog:

PR fortran/95979
* expr.c (gfc_check_init_expr): Fix check of return code from
gfc_intrinsic_func_interface.
* intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
of simplification of elemental intrinsics with array arguments.
* iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
for simplification of elemental use of INDEX.

gcc/testsuite/ChangeLog:

PR fortran/95979
* gfortran.dg/index_4.f90: New test.
gcc/fortran/expr.c
gcc/fortran/intrinsic.c
gcc/fortran/iresolve.c
gcc/testsuite/gfortran.dg/index_4.f90 [new file with mode: 0644]