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>
PR fortran/40850
......
......@@ -498,13 +498,20 @@ poplevel (int keep, int reverse, int functionbody)
tree
pushdecl (tree decl)
{
/* External objects aren't nested, other objects may be. */
if (DECL_EXTERNAL (decl))
DECL_CONTEXT (decl) = NULL_TREE;
else if (global_bindings_p ())
if (global_bindings_p ())
DECL_CONTEXT (decl) = current_translation_unit;
else
DECL_CONTEXT (decl) = current_function_decl;
{
/* 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;
}
/* 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
......
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>
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