[Bug fortran/59781] [4.9 Regression] [F03] Incorrect initialisation of derived type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59781 janus at gcc dot gnu.org changed: What|Removed |Added Keywords||wrong-code Status|UNCONFIRMED |NEW Last reconfirmed||2014-01-12 CC||janus at gcc dot gnu.org Summary|Incorrect initialisation of |[4.9 Regression] [F03] |derived type|Incorrect initialisation of ||derived type Ever confirmed|0 |1 --- Comment #1 from janus at gcc dot gnu.org --- (In reply to james.s.spencer from comment #0) See also discussion at https://groups.google.com/forum/#!topic/comp.lang.fortran/WogpvhUny4c, where Janus posted a smaller example which breaks under gfortran trunk. namely this one (which apparently is a regression in 4.9 trunk): module hilbert_space use, intrinsic :: iso_c_binding implicit none type dSFMT_t type(c_ptr) :: dSFMT_state = c_null_ptr real(c_double), allocatable :: random_store(:) end type contains subroutine dSFMT_init (arg) type(dSFMT_t) :: arg end subroutine subroutine test_rng() type(dSFMT_t) :: rng call dSFMT_init (rng) end subroutine end module
[Bug fortran/59781] [4.9 Regression] [F03] Incorrect initialisation of derived type
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59781 --- Comment #2 from janus at gcc dot gnu.org --- Here is a reduced test case of comment 0, which shows the wrong dump with all gfortran versions I tried (4.4, 4.6, 4.7, 4.8 and trunk): module dSFMT_interface use, intrinsic :: iso_c_binding implicit none type dSFMT_t type(c_ptr) :: state = c_null_ptr real(c_double), allocatable :: store(:) end type end module use dSFMT_interface implicit none contains subroutine dSFMT_init(rng) type(dSFMT_t) :: rng end subroutine subroutine test_rng() type(dSFMT_t) :: rng call dSFMT_init(rng) end subroutine end It is very similar to comment 1, just that the derived type is defined in a separate module.