https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69080

--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The leak seems gone with

module dummy_module

  implicit none
!  save

  type, public :: dummy_class
  contains
    procedure, public :: trigger => dummy_trigger
  end type

contains

  function dummy_create_allocatable() result(result_object)
    class(dummy_class), allocatable :: result_object
    allocate(result_object)
  end function dummy_create_allocatable

  subroutine dummy_do_nothing(a_dummy)
!    class(dummy_class), allocatable, intent(in) :: a_dummy
    class(dummy_class), allocatable :: a_dummy
    print *, allocated(a_dummy)
    if (allocated(a_dummy)) deallocate(a_dummy)
  end subroutine dummy_do_nothing

  subroutine dummy_trigger(this)
    class(dummy_class), intent(inout) :: this
    call dummy_do_nothing(dummy_create_allocatable())
  end subroutine dummy_trigger

end module dummy_module

program prog

  use dummy_module  
  implicit none
  save

  class(dummy_class), allocatable :: dummy

  allocate(dummy)

  call dummy%trigger()

  deallocate(dummy)

end program prog

Reply via email to