On Thu, May 10, 2018 at 11:48:24AM +0200, Dominique d'Humières wrote: > Hi Steve, > > AFAICT the patch is missing. > > Thanks for working on these PRs. >
Whoops. Looks like attached the log instead of diff. Index: gcc/fortran/array.c =================================================================== --- gcc/fortran/array.c (revision 259945) +++ gcc/fortran/array.c (working copy) @@ -2046,7 +2046,8 @@ got_charlen: else return true; - gcc_assert (current_length != -1); + if (current_length < 0) + current_length = 0; if (found_length == -1) found_length = current_length; Index: gcc/testsuite/gfortran.dg/pr85521_1.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr85521_1.f90 (nonexistent) +++ gcc/testsuite/gfortran.dg/pr85521_1.f90 (working copy) @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR fortran/85521 +program p + character(3) :: c = 'abc' + character(3) :: z(1) + z = [ c(:-1) ] + print *, z +end Index: gcc/testsuite/gfortran.dg/pr85521_2.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr85521_2.f90 (nonexistent) +++ gcc/testsuite/gfortran.dg/pr85521_2.f90 (working copy) @@ -0,0 +1,8 @@ +! { dg-do compile } +! PR fortran/85521 +program p + character(3) :: c = 'abc' + character(3) :: z(1) + z = [ c(:-2) ] + print *, z +end -- Steve