http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53029
Bug #: 53029 Summary: missed optimization in internal read (without implied-do-loop) Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: manfre...@gmx.ch Followup to Bug 32382. !234567C234567 program internalread implicit none integer m parameter(m=1000000) character value*10 integer i,j,intvalues(m) DO j=1,100 write(value,'(i3,a5)') j," 5 69" write(*,*) value !! read(value,*,end=20) (intvalues(i),i=1,m) ! this is BUG 32382 read(value,*,end=20) intvalues 20 write(*,*) j,(intvalues(i),i=1,4) ENDDO end program internalread This version needs 2.7s on my box, the commented version needs 0.27s (BUG 32382). The array version is about 10x slower than the implied do loop variant.