15ea0ba2cSPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1 25ea0ba2cSPeter Klausler! Test polymorphic restrictions 35ea0ba2cSPeter Klauslermodule m 45ea0ba2cSPeter Klausler type base 55ea0ba2cSPeter Klausler end type 65ea0ba2cSPeter Klausler type, extends(base) :: t 75ea0ba2cSPeter Klausler integer n 85ea0ba2cSPeter Klausler contains 95ea0ba2cSPeter Klausler procedure :: fwrite 105ea0ba2cSPeter Klausler generic :: write(formatted) => fwrite 115ea0ba2cSPeter Klausler end type 12*49016d53SPeter Klausler type, extends(t) :: t2 13*49016d53SPeter Klausler end type 145ea0ba2cSPeter Klausler contains 155ea0ba2cSPeter Klausler subroutine fwrite(x, unit, iotype, vlist, iostat, iomsg) 165ea0ba2cSPeter Klausler class(t), intent(in) :: x 175ea0ba2cSPeter Klausler integer, intent(in) :: unit 185ea0ba2cSPeter Klausler character(*), intent(in) :: iotype 195ea0ba2cSPeter Klausler integer, intent(in) :: vlist(:) 205ea0ba2cSPeter Klausler integer, intent(out) :: iostat 215ea0ba2cSPeter Klausler character(*), intent(in out) :: iomsg 225ea0ba2cSPeter Klausler write(unit, *, iostat=iostat, iomsg=iomsg) '(', iotype, ':', vlist, ':', x%n, ')' 235ea0ba2cSPeter Klausler end subroutine 24*49016d53SPeter Klausler subroutine subr(x, y, z, w) 255ea0ba2cSPeter Klausler class(t), intent(in) :: x 265ea0ba2cSPeter Klausler class(base), intent(in) :: y 275ea0ba2cSPeter Klausler class(*), intent(in) :: z 28*49016d53SPeter Klausler class(t2), intent(in) :: w 295ea0ba2cSPeter Klausler print *, x ! ok 30*49016d53SPeter Klausler print *, w ! ok 315ea0ba2cSPeter Klausler !ERROR: Derived type 'base' in I/O may not be polymorphic unless using defined I/O 325ea0ba2cSPeter Klausler print *, y 335ea0ba2cSPeter Klausler !ERROR: I/O list item may not be unlimited polymorphic 345ea0ba2cSPeter Klausler print *, z 355ea0ba2cSPeter Klausler end subroutine 365ea0ba2cSPeter Klauslerend 37