https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78881

--- Comment #1 from janus at gcc dot gnu.org ---
It seems that this problem not only appears when reading from internal units,
but also from std input:



module t_m
   implicit none

   type, public :: t
      character(len=:), allocatable :: m_s
   contains
      procedure, pass(this) :: read_t
      generic :: read(formatted) => read_t
   end type

contains

    subroutine read_t(this, lun, iotype, vlist, istat, imsg)
      ! argument definitions
      class(t), intent(inout)         :: this
      integer, intent(in)             :: lun
      character(len=*), intent(in)    :: iotype
      integer, intent(in)             :: vlist(:)
      integer, intent(out)            :: istat
      character(len=*), intent(inout) :: imsg
      ! local variables
      character :: c
      integer :: i

      do i=1,5
         read( unit=lun, fmt="(a1)", iostat=istat, iomsg=imsg ) c
         select case ( istat )
            case ( 0 )
               write( *, *) "i = ", i, ", c = ", c
            case default
               write( *, *) "i = ", i, ", istat = ", istat, imsg
               return
         end select
      end do

   end subroutine

end module


program p
   use t_m
   implicit none

!    character(len=5) :: s = "Hello"
   type(t) :: foo

   read( unit=*, fmt=*) foo
end

Reply via email to