re PR middle-end/42119 (internal compiler error: in expand_expr_addr_expr_1, at expr.c:6862)

2009-11-30  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42119
	PR fortran/38530
	* expr.c (expand_expr_addr_expr_1): Properly expand the initializer
	of CONST_DECLs.

	* gfortran.dg/pr42119.f90: New testcase.

From-SVN: r154778
This commit is contained in:
Richard Guenther 2009-11-30 10:39:36 +00:00 committed by Richard Biener
parent c84b434f46
commit ffab1d071c
4 changed files with 39 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2009-11-30 Richard Guenther <rguenther@suse.de>
PR middle-end/42119
PR fortran/38530
* expr.c (expand_expr_addr_expr_1): Properly expand the initializer
of CONST_DECLs.
2009-11-30 Richard Guenther <rguenther@suse.de>
* tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in

View File

@ -6840,9 +6840,8 @@ expand_expr_addr_expr_1 (tree exp, rtx target, enum machine_mode tmode,
return expand_expr (TREE_OPERAND (exp, 0), target, tmode, modifier);
case CONST_DECL:
/* Recurse and make the output_constant_def clause above handle this. */
return expand_expr_addr_expr_1 (DECL_INITIAL (exp), target,
tmode, modifier, as);
/* Expand the initializer like constants above. */
return XEXP (expand_expr_constant (DECL_INITIAL (exp), 0, modifier), 0);
case REALPART_EXPR:
/* The real part of the complex number is always first, therefore

View File

@ -1,3 +1,9 @@
2009-11-30 Richard Guenther <rguenther@suse.de>
PR middle-end/42119
PR fortran/38530
* gfortran.dg/pr42119.f90: New testcase.
2009-11-30 Dodji Seketeli <dodji@redhat.com>
PR c++/42069

View File

@ -0,0 +1,24 @@
! { dg-do compile }
module Test
use ISO_C_BINDING
contains
subroutine Callback(arg) bind(C)
integer(C_INT) :: arg
end subroutine Callback
subroutine Check(proc)
type(C_FUNPTR) :: proc
end subroutine Check
end module Test
program Main
use Test
type(C_FUNPTR) :: proc
call Check(C_FUNLOC(Callback))
end program Main