Commit 7ca17033 by Janus Weil

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
parent eab89c86
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
......
......@@ -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);
......
2010-12-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/46849
* gfortran.dg/block_9.f08: New.
2010-12-17 Dodji Seketeli <dodji@redhat.com>
* g++.dg/debug/dwarf2/self-ref-1.C: New test.
......
! { dg-do compile }
!
! PR 46849: [OOP] MODULE PROCEDURE resolution does not work in BLOCK or SELECT TYPE
!
! Contributed by Reinhold Bader <bader@lrz.de>
implicit none
block
call init(fun)
end block
contains
subroutine init(func)
real, external :: func
end subroutine
real function fun()
fun = 1.1
end function
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment