! { dg-do compile } ! PR80484 Three syntax errors involving derived-type I/O module dt_write_mod type, public :: B_type real :: amount end type B_type interface write (formatted) procedure :: Write_b end interface contains subroutine Write_b & (amount, unit, b_edit_descriptor, v_list, iostat, iomsg) class (B_type), intent(in) :: amount integer, intent(in) :: unit character (len=*), intent(in) :: b_edit_descriptor integer, dimension(:), intent(in) :: v_list integer, intent(out) :: iostat character (len=*), intent(inout) :: iomsg write (unit=unit, fmt="(f9.3)", iostat=iostat) amount%amount end subroutine Write_b end module dt_write_mod program test use dt_write_mod, only: B_type , write(formatted) implicit none real :: wage = 15.10 integer :: ios character(len=99) :: iom = "OK" write (unit=*, fmt="(DT'$$$Z.##')", iostat=ios, iomsg=iom) & B_type(wage), B_type(wage) print *, trim(iom) write (unit=*, fmt="(2DT'$$$Z.##')", iostat=ios, iomsg=iom) & B_type(wage), B_type(wage) print *, trim(iom) write (unit=*, fmt="(3DT'$$$Z.##')", iostat=ios, iomsg=iom) & B_type(wage), B_type(wage) print *, trim(iom) write (unit=*, fmt="(DT'$$$Z.##'/)", iostat=ios, iomsg=iom) & B_type(wage), B_type(wage) print *, trim(iom) end program test