------- Comment #2 from janus at gcc dot gnu dot org  2009-06-30 14:28 -------
Here is a reduced and modified test case. I have marked four lines with a (*),
whose removal results in the correct output (F F), although they seem
completely unrelated. This is pretty strange stuff.


MODULE atom_types

TYPE :: atom_list
  TYPE(atom_private), DIMENSION(:), pointer :: table    ! (*) F F
END TYPE

TYPE :: atom_private
  TYPE(atom_list) :: neighbours         ! (*) F F
  LOGICAL         :: initialized = .true.
END TYPE

TYPE :: atom_model
  TYPE(atom_list) :: atoms      ! (*) F F
  integer         :: dummy
END TYPE

contains

  SUBROUTINE init(this)
    TYPE(atom_private) :: this
    this%initialized = .FALSE.
    print *, "init", this%initialized
  END SUBROUTINE

END MODULE


program pr40594

  USE atom_types
  TYPE(atom_model) :: am
  type(atom_private) :: ap

  am%dummy = 0  ! (*) F F

  call init(ap)
  print *,"main",ap%initialized

END


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40594

Reply via email to