[Patch, Fortran, OOP] PR 56284: ICE with alternate return in type-bound procedure
Janus Weil
janus@gcc.gnu.org
Wed Apr 3 07:39:00 GMT 2013
>>> 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