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