blob: 4dc681012a0f98d3c81c1190b5cacbc546396a73 [file] [log] [blame]
! PR middle-end/82253
! { dg-do compile { target fortran_real_16 } }
! { dg-options "-Og" }
module pr82253
implicit none
private
public :: static_type
type, public :: T
procedure(), nopass, pointer :: testProc => null()
end type
type, public :: S
complex(kind=16), pointer :: ptr
end type
type(T), target :: type_complex32
interface static_type
module procedure foo
end interface
interface
subroutine bar (testProc)
procedure(), optional :: testProc
end subroutine
end interface
contains
function foo (self) result(res)
complex(kind=16) :: self
type(T), pointer :: res
call bar (testProc = baz)
end function
subroutine baz (buffer, status)
character(len=*) :: buffer
integer(kind=4) :: status
complex(kind=16), target :: obj
type(S) :: self
integer(kind=1), parameter :: zero(storage_size(obj)/8) = 0
obj = transfer (zero, obj)
self%ptr => obj
write (buffer, *, iostat=status) self%ptr, '#'
end subroutine
end module pr82253