| ! { dg-do run } |
| ! PR84387 Defined output does not work for a derived type that |
| ! has no components |
| module m |
| type :: t |
| private |
| !integer :: m_i = 0 !<-- *** |
| contains |
| private |
| procedure, pass(this) :: write_t |
| generic, public :: write(formatted) => write_t |
| end type |
| contains |
| subroutine write_t(this, lun, iotype, vlist, istat, imsg) |
| ! argument definitions |
| class(t), intent(in) :: this |
| integer, intent(in) :: lun |
| character(len=*), intent(in) :: iotype |
| integer, intent(in) :: vlist(:) |
| integer, intent(out) :: istat |
| character(len=*), intent(inout) :: imsg |
| write(lun, fmt=*, iostat=istat, iomsg=imsg) "Hello World!" |
| return |
| end subroutine write_t |
| |
| end module |
| |
| program p |
| use m, only : t |
| type(t) :: foo |
| print "(dt)", foo ! { dg-output " Hello World!" } |
| end program |