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

             Bug #: 52117
           Summary: allocated arrays give incorrect results when used with
                    RESHAPE in gcc v4.6.2
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: sphirsh...@yahoo.com


This snippet of code gives incorrect results for the reshaped array. If the
arrays are NOT allocated, but explicitly dimensioned, the correct result is
obtained.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      PROGRAM RESHAPEIT

      INTEGER, PARAMETER :: n1=2, n2=2, n3=2
      INTEGER            :: m1, m2, m3, lc
      REAL, ALLOCATABLE  :: A(:,:), B(:,:,:)
      REAL               :: val

      ALLOCATE (A(n1,n2*n3), B(n1,n2,n3))

!     INITIALIZE A
      val = 0
      lc = 0
     DO m3=1,n3
         DO m2=1,n2
            lc = lc+1
            DO m1=1,n1
               val = val+1
               A(m1, lc) = val         
            END DO
         END DO
      END DO

      B = RESHAPE(A, SHAPE(B))

      lc = 0
      DO m3=1,n3
         DO m2=1,n2
            lc = lc+1
            DO m1=1,n1
               PRINT *,'A(',m1,',',lc,') = ',A(m1,lc),' B = ',B(m1,m2,m3)
            END DO
         END DO
      END DO

      DEALLOCATE(A, B)

      PAUSE

      END PROGRAM RESHAPEIT
++++++++++++++++++++++++++++++++++++++++++++++++++++++

Reply via email to