diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-05-23 04:15:25 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-05-23 04:15:25 +0000 |
commit | 24016fdb16333fbe2a6fa54ab02828d8121cfe52 (patch) | |
tree | 685f0c4c9aba3a53c9ed0f39db4ea44453391383 /gcc/fortran/resolve.c | |
parent | 1809a5208fc4b69da7db417f7a0b3d13eefe425a (diff) | |
download | gcc-24016fdb16333fbe2a6fa54ab02828d8121cfe52.zip gcc-24016fdb16333fbe2a6fa54ab02828d8121cfe52.tar.gz gcc-24016fdb16333fbe2a6fa54ab02828d8121cfe52.tar.bz2 |
re PR fortran/18923 (segfault after subroutine name confusion)
2007-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/18923
* resolve.c (resolve_function): Don't call resolve_global_procedure if
there is no name. Delete duplicated statement in ELSE clause.
Co-Authored-By: Daniel Franke <franke.daniel@gmail.com>
From-SVN: r124979
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 746d41b..60da300 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1567,7 +1567,8 @@ resolve_function (gfc_expr *expr) procedure,it must be external and should be checked for usage. */ if (sym && !sym->attr.dummy && !sym->attr.contained && sym->attr.proc != PROC_ST_FUNCTION - && !sym->attr.use_assoc) + && !sym->attr.use_assoc + && sym->name ) resolve_global_procedure (sym, &expr->where, 0); /* Switch off assumed size checking and do this again for certain kinds @@ -1750,8 +1751,6 @@ resolve_function (gfc_expr *expr) if (expr->symtree->n.sym->result && expr->symtree->n.sym->result->ts.type != BT_UNKNOWN) expr->ts = expr->symtree->n.sym->result->ts; - else - expr->ts = expr->symtree->n.sym->result->ts; } return t; |