PR69741: Bad error in formal with array scalar loop counters
Harald Anlauf
anlauf@gmx.de
Sat Nov 19 14:44:00 GMT 2016
Sorry, forgot to mention: regtested on i686-pc-linux-gnu
Harald
On 11/19/16 15:42, Harald Anlauf wrote:
> Hi Steve, all,
>
> On 11/19/16 02:18, Steve Kargl wrote:
>> The error message is still not clear. 42 is a scalar integer. Why
>> not use the language in the standard?
>>
>> C739 (R753) The index-name shall be a named scalar variable of type integer.
>
> I had adjusted the error message to the same appearing in resolve.c
> in another place, but you are absolutely right. The attached patch
> takes this into account. The testcase is derived from the PR.
>
>>>
>>> Whoever wants to take this one.
>>>
>>
>> Ever thought about getting a commit bit and getting more involved
>> in gfortran development? I know 4 or 5 other gentlemen that would
>> welcome you with open arms.
>>
>
> Thanks.
>
> During the stabilization phase of gcc-6 I tried to understand more
> of the internals of gfortran. However, most of the time I just got
> lost. I therefore decided to tackle a few simple things.
>
> I don't have the resources to follow the development continuously,
> especially when there are changes to ABI or module format. So it
> makes more sense for me to wait till the dust settles.
>
> I'll try to find some time during the current stage 3 to check
> whether there are regressions affecting my codes, but no promises.
>
> Harald
>
>
> 2016-11-19 Harald Anlauf <anlauf@gmx.de>
>
> PR fortran/69741
> * resolve.c (gfc_resolve_forall): Check for non-scalar index
> variables.
>
> 2016-11-19 Harald Anlauf <anlauf@gmx.de>
>
> PR fortran/69741
> * gfortran.dg/forall_18.f90: New testcase.
>
> Index: gfortran.dg/forall_18.f90
> ===================================================================
> --- gfortran.dg/forall_18.f90 (revision 0)
> +++ gfortran.dg/forall_18.f90 (revision 0)
> @@ -0,0 +1,12 @@
> +! { dg-do compile }
> +! PR 69741 - improve error message for non-scalar FORALL index variables
> +!
> +subroutine check
> + integer :: ii(2), i, j
> + real :: a(3,2)
> +
> + forall (ii(1)=1:3, ii(2)=1:2) ! { dg-error "scalar variable of type
> integer" }
> + a(ii(1),ii(2)) = ii(1) * ii(2)
> + end forall
> +
> +end subroutine check
>
--
Harald Anlauf
Dieburger Str. 17
60386 Frankfurt
Tel.: (069) 4014 8318
More information about the Gcc-patches
mailing list