[PATCH] PR47040 - Make error message for empty array constructor more helpful/correct
Steve Kargl
sgk@troutmask.apl.washington.edu
Sat Apr 9 17:03:00 GMT 2016
On Sat, Apr 09, 2016 at 06:51:50PM +0200, Dominique d'Humières wrote:
>
> >
> > It is valid syntax because of
> >
> > "An empty sequence forms a zero-sized rank-one array."
> >
> > It seems that J3 saw the error in their ways as (/ /) is clearly
> > an empty array constructor, and fixed the possibility of creating
> > a typeless zero-sized, rank-one array.
>
> This is exactly the point of the patch! typeless zero-sized, rank-one array
> are not allowed, while typed zero-sized, rank-one array are.
>
And, you're missing the point that your patch is suggesting
that one use (/ INTEGER :: /), which is clearly invalid
Fortran 95.
> >>> Adding any text referring
> >>> to type-spec is wrong.
> >>>
> >>
> >> Are you considering (/ ( i, i = 1, 0 ) /) as non empty?
> >>
> >
> > It is a zero-sized rank-one array with type INTEGER.
>
> That is not the answer to the question.
I answered the question that was asked. The crucial point
is that (/ (i,i=1,0) /) as a type!
> Is (/ ( i, i = 1, 0 ) /) non empty, yes or no?
That wasn't that originally asked question.
> IMO "empty array constructor" is ambiguous.
Yes, it is. That is why J3 made changes in Fortran 2003.
--
Steve
More information about the Fortran
mailing list