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:
parent
c84b434f46
commit
ffab1d071c
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue