http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38199

--- Comment #21 from Manfred Schwarb <manfred99 at gmx dot ch> 2012-04-18 
09:01:46 UTC ---
This new version does fix it, timings are around 0.2s for the
above test-case (exactly as fast as the user-optimized len_trim
variant). Thanks a lot!

However, I don't see why this fix is restricted to list-directed
reads. I.e. consider a slight variation:

!234567
      character buffer*100000
      integer i,j

      DO j=1,9999
        write(buffer,'(i4)') j
        write(*,*) buffer(1:4)
!!        read(buffer(1:len_trim(buffer)),'(i100000)') i
        read(buffer,'(i100000)') i
        write(*,*) i
      ENDDO
      end

Here, I get 4.5s for the above variant and 0.2s for the len_trim variant.
But perhaps this is a different issue (separate bug report needed)?

Reply via email to