https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78737
--- Comment #21 from Paul Thomas <pault at gcc dot gnu.org> --- (In reply to Damian Rouson from comment #19) > (In reply to Paul Thomas from comment #16) > > (In reply to Paul Thomas from comment #15) > > > (In reply to Damian Rouson from comment #14) > > > > Hi Paul, > > > > > > > > Based on comment #12, I assume you no longer believe that type guarding > > > > is > > > > required. If I misinterpreted comment #12, please let me know. > > FWIW, I now realize I did misread comment #12. I focused in on "assert" and > didn't notice the type-guarding in write_formatted above it. > > > > > > > > I have to confess that this "interpretation" is arrived at by the absence > > > of > > > any mention of the need for dynamic dispatch and by the implementation by > > > other vendors. > > The Cray and PGI compilers accept the in the original bug report. The Intel > compiler rejects, but I've noticed a lot of problems with UDDTIO in the > Intel compiler over the years so I'll submit a bug report to Intel. > > > > > On thinking about it, is the specific instance of write_formatted allowed? > > I believe not. Note 7.50 of the 31 August 2016 draft Fortran 2015 standard > includes the following: > > "The dynamic type of an object cannot be abstract; therefore, a deferred > type-bound procedure cannot be invoked." > > I interpret the above quote to mean that write_formatted as written in > comment #15 cannot be invoked. Presumably that also means it is invalid > code. > > Damian Dear Damian, [pault@localhost pr78737]# /irun/bin/gfortran -static-libgfortran c*1.f90 -g comment1.f90:21:16: write(*,*) a 1 Error: Data transfer element at (1) cannot be polymorphic unless it is processed by a defined input/output procedure [paultt@localhost pr78737]# ifort c*1.f90 comment1.f90(21): error #5513: A polymorphic I/O list item requires a user-defined derived-type input/output procedure. write(*,*) a ----^ compilation aborted for comment1.f90 (code 1) ifort (IFORT) 16.0.3 20160415 This, I happen to think, is correct since there is no UDTIO procedure in sight. Cheers Paul