Commit 2a3c437d by Tobias Burnus Committed by Tobias Burnus

re PR fortran/42597 (ICE with procedure pointer initialized to null())

2010-01-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/42597
        * trans-decl.c (get_proc_pointer_decl): Fix call to
        gfc_conv_initializer for array-valued proc-pointer funcs.

2010-01-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/42597
        * gfortran.dg/proc_ptr_26.f90: New test.

From-SVN: r155688
parent 64b33a7e
2010-01-07 Tobias Burnus <burnus@net-b.de>
PR fortran/42597
* trans-decl.c (get_proc_pointer_decl): Fix call to
gfc_conv_initializer for array-valued proc-pointer funcs.
2010-01-07 Tobias Burnus <burnus@net-b.de>
PR fortran/41872
* trans-decl.c (gfc_trans_deferred_vars): Don't initialize
allocatable scalars with SAVE attribute.
......
......@@ -1349,7 +1349,9 @@ get_proc_pointer_decl (gfc_symbol *sym)
{
/* Add static initializer. */
DECL_INITIAL (decl) = gfc_conv_initializer (sym->value, &sym->ts,
TREE_TYPE (decl), sym->attr.dimension, sym->attr.proc_pointer);
TREE_TYPE (decl),
sym->attr.proc_pointer ? false : sym->attr.dimension,
sym->attr.proc_pointer);
}
attributes = add_attributes_to_decl (sym->attr, NULL_TREE);
......
2010-01-07 Tobias Burnus <burnus@net-b.de>
PR fortran/42597
* gfortran.dg/proc_ptr_26.f90: New test.
2010-01-07 Tobias Burnus <burnus@net-b.de>
PR fortran/41872
* gfortran.dg/allocatable_scalar_7.f90: New test.
......
! { dg-do run }
!
! PR fortran/42597
!
! Contributed by mrestelli@gmail.com
!
module mod_a
implicit none
abstract interface
pure function intf(x) result(y)
real, intent(in) :: x(:,:)
real :: y(size(x,1),size(x,1),size(x,2))
end function intf
end interface
procedure(intf), pointer :: p_fun => null()
end module mod_a
program main
use mod_a
implicit none
procedure(intf), pointer :: p_fun2 => null()
if (associated(p_fun) .or. associated(p_fun2)) &
call abort ()
end program main
! { dg-final { cleanup-modules "mod_a" } }
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