aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/decl.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2013-04-03 09:31:23 +0200
committerJanus Weil <janus@gcc.gnu.org>2013-04-03 09:31:23 +0200
commit9362a03b8760f7ea986af5b0b22a5b80bed9d05d (patch)
treed3cc478f4d5200ef178ed16cff43e7f30cf49991 /gcc/fortran/decl.c
parente0f0935b9dbe8028ba426c6b1051dff96d043f2e (diff)
downloadgcc-9362a03b8760f7ea986af5b0b22a5b80bed9d05d.zip
gcc-9362a03b8760f7ea986af5b0b22a5b80bed9d05d.tar.gz
gcc-9362a03b8760f7ea986af5b0b22a5b80bed9d05d.tar.bz2
re PR fortran/56284 ([OOP] ICE with alternate return in type-bound procedure)
2013-04-03 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-03 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. From-SVN: r197389
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r--gcc/fortran/decl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 72c511c..3188eae 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -4487,7 +4487,15 @@ gfc_match_formal_arglist (gfc_symbol *progname, int st_flag, int null_flag)
for (;;)
{
if (gfc_match_char ('*') == MATCH_YES)
- sym = NULL;
+ {
+ sym = NULL;
+ if (gfc_notify_std (GFC_STD_F95_OBS, "Alternate-return argument "
+ "at %C") == FAILURE)
+ {
+ m = MATCH_ERROR;
+ goto cleanup;
+ }
+ }
else
{
m = gfc_match_name (name);