1! { dg-do compile }
2! PR78659 Spurious "requires DTIO" reported against namelist statement
3MODULE m
4  IMPLICIT NONE
5  TYPE :: t
6    CHARACTER :: c
7  CONTAINS
8    PROCEDURE :: write_formatted
9    GENERIC :: WRITE(FORMATTED) => write_formatted
10  END TYPE
11CONTAINS
12  SUBROUTINE write_formatted(dtv, unit, iotype, v_list, iostat, iomsg)
13    CLASS(t), INTENT(IN) :: dtv
14    INTEGER, INTENT(IN) :: unit
15    CHARACTER(*), INTENT(IN) :: iotype
16    INTEGER, INTENT(IN) :: v_list(:)
17    INTEGER, INTENT(OUT) :: iostat
18    CHARACTER(*), INTENT(INOUT) :: iomsg
19    WRITE (unit, "(A)", IOSTAT=iostat, IOMSG=iomsg) dtv%c
20    print *, "what"
21  END SUBROUTINE
22END MODULE
23
24PROGRAM p
25  USE m
26  IMPLICIT NONE
27  class(t), allocatable :: x
28  NAMELIST /nml/ x
29  x = t('a')
30  WRITE (*, nml)
31  READ (*, nml) ! { dg-error "is polymorphic and requires a defined input/output procedure" }
32END
33