! RUN: %python %S/test_errors.py %s %flang_fc1 ! Test polymorphic restrictions module m type base end type type, extends(base) :: t integer n contains procedure :: fwrite generic :: write(formatted) => fwrite end type contains subroutine fwrite(x, unit, iotype, vlist, iostat, iomsg) class(t), intent(in) :: x integer, intent(in) :: unit character(*), intent(in) :: iotype integer, intent(in) :: vlist(:) integer, intent(out) :: iostat character(*), intent(in out) :: iomsg write(unit, *, iostat=iostat, iomsg=iomsg) '(', iotype, ':', vlist, ':', x%n, ')' end subroutine subroutine subr(x, y, z) class(t), intent(in) :: x class(base), intent(in) :: y class(*), intent(in) :: z print *, x ! ok !ERROR: Derived type 'base' in I/O may not be polymorphic unless using defined I/O print *, y !ERROR: I/O list item may not be unlimited polymorphic print *, z end subroutine end program main use m call subr(t(123),t(234),t(345)) end