[Patch, Fortran, OOP] PR 56284: ICE with alternate return in type-bound procedure

Tobias Burnus burnus@net-b.de
Thu Apr 4 08:08:00 GMT 2013


Janus Weil wrote:
> Ok, here is the follow-up patch, which removes the warning on
> (alternate) RETURN statements, in order to avoid double diagnostics.
>
> (In altreturn_5.f90 there apparently were some superfluous control
> characters, which were removed by my editor.)

As my editor shows, that file uses DOS line endings (\r\n) in some lines 
and UNIX ones (\n) in others. In principle, I am for keeping such files 
to test the parser. However, as it is line-based, the fully DOS 
line-ending files should be sufficient.
An alternative would be to use svn diff --diff-cmd=diff -x '-u -p -w' 
for that file, which ignores the white-space changes.

> Regtested on x86_64-unknown-linux-gnu. Ok for trunk?

OK. Thanks for the patch.

Tobias

> 2013-04-03  Janus Weil  <janus@gcc.gnu.org>
>
>      PR fortran/40881
>      * match.c (gfc_match_return): Remove standard notification.
>      * primary.c (gfc_match_actual_arglist): Add standard notification.
>
> 2013-04-03  Janus Weil  <janus@gcc.gnu.org>
>
>      PR fortran/40881
>      * gfortran.dg/altreturn_1.f90: Add -std=gnu.
>      * gfortran.dg/altreturn_4.f90: Ditto.
>      * gfortran.dg/altreturn_3.f90: Replace -std=legacy by -std=gnu.
>      * gfortran.dg/altreturn_5.f90: Ditto.
>      * gfortran.dg/altreturn_6.f90: Ditto.
>      * gfortran.dg/altreturn_7.f90: Ditto.
>
>
>
>
> 2013/4/3 Janus Weil <janus@gcc.gnu.org>:
>>>>> Regarding the second point, one should mention that we already have a
>>>>> warning for "alternate return", but this only triggers if there is an
>>>>> actual RETURN statement (which is not the case for the test code in
>>>>> the PR). The warning I'm adding triggers on the appearance of an
>>>>> asterisk argument.
>>>> Shouldn't one then remove the other warning, which should be then
>>>> unreachable? If so, please do so.
>>> Yes, will do so in a follow-up patch.
>>>
>>>
>>>>> This induces a certain redundancy, i.e. we warn about both the
>>>>> alternate-return argument and the alternate RETURN statement. The
>>>>> question is if we want to keep this, or whether on can remove the old
>>>>> warning for the RETURN statement (which could be done in a follow-up
>>>>> patch).
>>>> Or it is not unreachable but leads to double-diagnostic which is not better,
>>>> either.
>>> Right.
>>>
>>>>> The patch is regtested on x86_64-unknown-linux-gnu. Ok for trunk?
>>>> OK with the -std= change. (Please run "make
>>>> RUNTESTFLAGS="dg.exp=.<name>.f90" prior committal to check whether it indeed
>>>> works with -std=gnu.)
>>> All of them still work with std=gnu.
>> I have just committed the patch as 197389.
>>
>> Will take care of removing the double diagnostics next. Also I just
>> noticed that there still seem to be cases where one does not get a
>> warning for alternate return (such as altreturn_1 and altreturn_4 in
>> the testsuite).
>>
>> Cheers,
>> Janus
>>
>>
>>>>> 2013-04-01  Janus Weil  <janus@gcc.gnu.org>
>>>>>
>>>>>       PR fortran/56284
>>>>>       PR fortran/40881
>>>>>       * decl.c (gfc_match_formal_arglist): Warn about alternate-return
>>>>>       arguments.
>>>>>       * interface.c (check_dummy_characteristics): Return if symbols are
>>>>> NULL.
>>>>>
>>>>> 2013-04-01  Janus Weil  <janus@gcc.gnu.org>
>>>>>
>>>>>       PR fortran/56284
>>>>>       PR fortran/40881
>>>>>       * gfortran.dg/altreturn_8.f90: New.
>>>>>       * gfortran.dg/altreturn_2.f90: Add -std=legacy.
>>>>>       * gfortran.dg/intrinsic_actual_3.f90: Ditto.
>>>>>       * gfortran.dg/invalid_interface_assignment.f90: Ditto.
>>>>



More information about the Fortran mailing list