aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2010-12-17 13:31:54 +0100
committerJanus Weil <janus@gcc.gnu.org>2010-12-17 13:31:54 +0100
commit7ca17033382c71cbfe6cd24da017c2c333b114af (patch)
tree30a6e0f0a3a917b592de55c9931bebb93e7e552f /gcc/fortran
parenteab89c86a2e7366d3437107f6568ff41d98b0453 (diff)
downloadgcc-7ca17033382c71cbfe6cd24da017c2c333b114af.zip
gcc-7ca17033382c71cbfe6cd24da017c2c333b114af.tar.gz
gcc-7ca17033382c71cbfe6cd24da017c2c333b114af.tar.bz2
re PR fortran/46849 ([OOP] MODULE PROCEDURE resolution does not work in BLOCK or SELECT TYPE)
2010-12-17 Janus Weil <janus@gcc.gnu.org> Tobias Burnus <burnus@gcc.gnu.org> PR fortran/46849 * resolve.c (resolve_symbol): Remove symbols that wrongly ended up in a local BLOCK namespace. 2010-12-17 Janus Weil <janus@gcc.gnu.org> PR fortran/46849 * gfortran.dg/block_9.f08: New. Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org> From-SVN: r167978
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/resolve.c4
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2c4de57..960a6e8 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,10 @@
+2010-12-17 Janus Weil <janus@gcc.gnu.org>
+ Tobias Burnus <burnus@gcc.gnu.org>
+
+ PR fortran/46849
+ * resolve.c (resolve_symbol): Remove symbols that wrongly ended up
+ in a local BLOCK namespace.
+
2010-12-15 Jakub Jelinek <jakub@redhat.com>
PR fortran/46945
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index a27fe2d..7081146 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -11784,7 +11784,9 @@ resolve_symbol (gfc_symbol *sym)
for (ns = gfc_current_ns->parent; ns; ns = ns->parent)
{
symtree = gfc_find_symtree (ns->sym_root, sym->name);
- if (symtree && symtree->n.sym->generic)
+ if (symtree && (symtree->n.sym->generic ||
+ (symtree->n.sym->attr.flavor == FL_PROCEDURE
+ && sym->ns->construct_entities)))
{
this_symtree = gfc_find_symtree (gfc_current_ns->sym_root,
sym->name);