aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2007-05-23 04:15:25 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2007-05-23 04:15:25 +0000
commit24016fdb16333fbe2a6fa54ab02828d8121cfe52 (patch)
tree685f0c4c9aba3a53c9ed0f39db4ea44453391383 /gcc
parent1809a5208fc4b69da7db417f7a0b3d13eefe425a (diff)
downloadgcc-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')
-rw-r--r--gcc/fortran/ChangeLog8
-rw-r--r--gcc/fortran/resolve.c5
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 45f4003..232fb91 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/31627
@@ -8,7 +14,7 @@
(gfc_conv_array_ref): Likewise.
(gfc_conv_ss_startstride): Likewise.
-2005-05-21 Jerry DeLisle <jvdelisle@verizon.net>
+2007-05-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Daniel Franke <franke.daniel@gmail.com>
PR fortran/32002
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;