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