This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Janus Weil wrote:
here is a small patch which does two things:
1) It fixes the ICE in the subject line (in a rather obvious way).
2) It warns about alternate-return arguments (which is an obsolescent
feature), and adds -std=legacy to some test cases to suppress the
warning.

I would prefer if you could use "-std=gnu", I find -std=legacy is too special. Alternate-returns are perfectly valid in Fortran 2008 - the standard just requires the obsolescent warning, which -std=f95/f2003/f2008/f2008ts activate. And by default "-pedantic". Using "" or "-std=gnu" should be sufficient to disable "-pedantic".

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.

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.

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.)

Thanks for the patch!

Tobias

PS: Don't forget to copy the commit message to Bugzilla - thanks!

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]