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 <ja...@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 <ja...@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 <ja...@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 <ja...@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 <ja...@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.