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
This commit is contained in:
Jerry DeLisle 2007-05-23 04:15:25 +00:00
parent 1809a5208f
commit 24016fdb16
2 changed files with 9 additions and 4 deletions

View File

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

View File

@ -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;