summaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2008-01-20 16:58:15 +0000
committerPaul Thomas <pault@gcc.gnu.org>2008-01-20 16:58:15 +0000
commitf5d67ede42caa6e1442a4776a4929a8a96907caf (patch)
treedd7f7e6e4030beee514d48db62d509810015d5dd /gcc/fortran/resolve.c
parentbdf8f544b6775a6283d8f4cafcf50dd448e7be59 (diff)
downloadgcc-f5d67ede42caa6e1442a4776a4929a8a96907caf.tar.gz
re PR fortran/34861 (ICE in function with entry (and result?))
2008-01-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/34861 * resolve.c (resolve_entries): Do not do an array bounds check if the result symbols are the same. PR fortran/34854 * module.c (read_module) : Hide the symtree of the previous version of the symbol if this symbol is renamed. 2008-01-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/34784 * gfortran.dg/mapping_2.f90: Correct ubound expression for h4. PR fortran/34861 * gfortran.dg/entry_array_specs_3.f90: New test. PR fortran/34854 * gfortran.dg/use_rename_1.f90: New test. From-SVN: r131679
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 0c4946e67bd..38f8e647422 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -496,7 +496,8 @@ resolve_entries (gfc_namespace *ns)
|| (el->sym->result->attr.pointer
!= ns->entries->sym->result->attr.pointer))
break;
- else if (as && fas && gfc_compare_array_spec (as, fas) == 0)
+ else if (as && fas && ns->entries->sym->result != el->sym->result
+ && gfc_compare_array_spec (as, fas) == 0)
gfc_error ("Function %s at %L has entries with mismatched "
"array specifications", ns->entries->sym->name,
&ns->entries->sym->declared_at);