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

Reply via email to