With a recent gfortran, the following compiles, but generates the wrong
results:

TYPE datatype
  INTEGER :: I
END TYPE
TYPE(datatype) :: data(4)
data=(/(datatype(I),I=1,4)/)
data=RESHAPE(TRANSPOSE(RESHAPE(data,(/2,2/))),SHAPE(data))
IF (ANY(data(:)%I.NE.(/1,3,2,4/))) CALL ABORT()
END


-- 
           Summary: wrong code generated with gfortran
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jv244 at cam dot ac dot uk


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

Reply via email to