diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2009-01-10 00:11:18 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2009-01-10 00:11:18 +0000 |
commit | 9be3684bdd98f40b323958bc5f083c62846fc45b (patch) | |
tree | b072b2ba7152e78d40188108776d2150ce04ea35 /gcc/fortran | |
parent | 8b791297bfc5e1dd776fab8ee7b772143838f03a (diff) | |
download | gcc-9be3684bdd98f40b323958bc5f083c62846fc45b.zip gcc-9be3684bdd98f40b323958bc5f083c62846fc45b.tar.gz gcc-9be3684bdd98f40b323958bc5f083c62846fc45b.tar.bz2 |
re PR fortran/38765 (ICE in check_host_association)
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38765
* resolve.c (check_host_association): Use the symtree name to
search for a potential contained procedure, since this is the
name by which it would be referenced.
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38765
* gfortran.dg/host_assoc_function_6.f90: New test.
From-SVN: r143237
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 84b81e2..b7d1b99 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2009-01-10 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/38765 + * resolve.c (check_host_association): Use the symtree name to + search for a potential contained procedure, since this is the + name by which it would be referenced. + 2009-01-06 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/38220 diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 0cdf40e..3148b0d 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1,5 +1,5 @@ /* Perform type resolution on the various structures. - Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Contributed by Andy Vaught @@ -4313,7 +4313,7 @@ check_host_association (gfc_expr *e) if (gfc_current_ns->parent && old_sym->ns != gfc_current_ns) { - gfc_find_symbol (old_sym->name, gfc_current_ns, 1, &sym); + gfc_find_symbol (e->symtree->name, gfc_current_ns, 1, &sym); if (sym && old_sym != sym && sym->ts.type == old_sym->ts.type && sym->attr.flavor == FL_PROCEDURE |