As reported by Joost VandeVondele, this does not compile correctly since my fix for PR41113/7
Paul SUBROUTINE S2(I) INTEGER :: I(4) write(6,*) I IF (ANY(I.NE.(/3,5,7,9/))) CALL ABORT() END SUBROUTINE S2 MODULE M1 TYPE T1 INTEGER, POINTER, DIMENSION(:) :: data END TYPE T1 CONTAINS SUBROUTINE S1() TYPE(T1) :: d INTEGER, TARGET, DIMENSION(10) :: scratch=(/(i,i=1,10)/) INTEGER :: i=2 d%data=>scratch(1:9:2) write(6,*) d%data(i:) CALL S2(d%data(i:)) END SUBROUTINE S1 END MODULE M1 USE M1 CALL S1 END -- Summary: [4.4, 4.5 regression] No temporary produced for array pointer actual arguments Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: fortran AssignedTo: pault at gcc dot gnu dot org ReportedBy: pault at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43111