[PATCH] PR fortran/85521 -- Zero length substrings in array aconstructors

Andre Vehreschild vehre@gmx.de
Thu May 10 15:18:00 GMT 2018


Hi Steve,

the patch looks OK to me. Is it possible to give a warning there, at least with
some higher warning-level? Or is there already one? I haven't tested it.

Regards,
	Andre

On Thu, 10 May 2018 07:15:21 -0700
Steve Kargl <sgk@troutmask.apl.washington.edu> wrote:

> 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
> 


-- 
Andre Vehreschild * Email: vehre ad gmx dot de 



More information about the Fortran mailing list