This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch, Fortran, OOP] PR 56266: ICE on invalid in gfc_match_varspec
- From: Mikael Morin <mikael dot morin at sfr dot fr>
- To: Janus Weil <janus at gcc dot gnu dot org>
- Cc: gfortran <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 13 Apr 2013 17:44:10 +0200
- Subject: Re: [Patch, Fortran, OOP] PR 56266: ICE on invalid in gfc_match_varspec
- References: <CAKwh3qhJCDe7o-JqBLMj_ejT+nJrUQi3UVxPdPxiGCxURnmOgw at mail dot gmail dot com> <51695BFC dot 9010101 at sfr dot fr> <CAKwh3qjVyi92P9AL=EH+7qCiszi7a9yOUSnpdWE2hv1OeL5z2Q at mail dot gmail dot com>
Le 13/04/2013 16:02, Janus Weil a écrit :
> Hi Mikael,
>
>> So, it seems that EXPR_FUNCTION is acceptable in gfc_match_varspec.
>> And then, there is nothing preventing 'c(i)' in 'c(i)%encM()' from being
>> parsed as a function. Is this supported?
>
> I think this is forbidden by the Fortran standard, cf. e.g.
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42188
>
> Actually I'm not sure in which context a function call with sub-refs
> would be valid. One should re-check the standard on this ...
>
Indeed, that's invalid:
structure-component is data-ref
data-ref is part-ref [ % part-ref ] ...
part-ref is part-name [ ( section-subscript-list ) ] [ image-selector ]
(R611) The leftmost part-name shall be the name of a data object.
I thought they were allowed for pointer-returning functions.
Mikael