Commit 5b1cce91 by Richard Guenther Committed by Richard Biener

re PR fortran/47839 (ICE in dwarf2out.c:add_AT_specification)

2011-02-24  Richard Guenther  <rguenther@suse.de>

	PR fortran/47839
	* f95-lang.c (pushdecl): For externs in non-global scope push
	a copy of the decl into the BLOCK.

	* gfortran.dg/lto/pr47839_0.f90: New testcase.
	* gfortran.dg/lto/pr47839_1.f90: Likewise.

From-SVN: r170463
parent 68f792d0
2011-02-24 Richard Guenther <rguenther@suse.de>
PR fortran/47839
* f95-lang.c (pushdecl): For externs in non-global scope push
a copy of the decl into the BLOCK.
2011-02-23 Mikael Morin <mikael@gcc.gnu.org> 2011-02-23 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/40850 PR fortran/40850
......
...@@ -498,13 +498,20 @@ poplevel (int keep, int reverse, int functionbody) ...@@ -498,13 +498,20 @@ poplevel (int keep, int reverse, int functionbody)
tree tree
pushdecl (tree decl) pushdecl (tree decl)
{ {
/* External objects aren't nested, other objects may be. */ if (global_bindings_p ())
if (DECL_EXTERNAL (decl))
DECL_CONTEXT (decl) = NULL_TREE;
else if (global_bindings_p ())
DECL_CONTEXT (decl) = current_translation_unit; DECL_CONTEXT (decl) = current_translation_unit;
else else
{
/* External objects aren't nested. For debug info insert a copy
of the decl into the binding level. */
if (DECL_EXTERNAL (decl))
{
tree orig = decl;
decl = copy_node (decl);
DECL_CONTEXT (orig) = NULL_TREE;
}
DECL_CONTEXT (decl) = current_function_decl; DECL_CONTEXT (decl) = current_function_decl;
}
/* Put the declaration on the list. The list of declarations is in reverse /* Put the declaration on the list. The list of declarations is in reverse
order. The list will be reversed later if necessary. This needs to be order. The list will be reversed later if necessary. This needs to be
......
2011-02-24 Richard Guenther <rguenther@suse.de>
PR fortran/47839
* gfortran.dg/lto/pr47839_0.f90: New testcase.
* gfortran.dg/lto/pr47839_1.f90: Likewise.
2011-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2011-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/47567 PR libgfortran/47567
......
! { dg-lto-do link }
! { dg-lto-options {{ -g -flto }} }
! { dg-extra-ld-options "-r -nostdlib" }
MODULE globalvar_mod
integer :: xstop
CONTAINS
END MODULE globalvar_mod
MODULE PEC_mod
CONTAINS
SUBROUTINE PECapply(Ex)
USE globalvar_mod, ONLY : xstop
real(kind=8), dimension(1:xstop), intent(inout) :: Ex
END SUBROUTINE PECapply
END MODULE PEC_mod
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