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

Reply via email to