[Bug tree-optimization/51058] New: [4.7 Regression] ICE: gimple check: expected gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at gimple.h:1992

dominiq at lps dot ens.fr gcc-bugzilla@gcc.gnu.org
Wed Nov 9 13:41:00 GMT 2011


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

             Bug #: 51058
           Summary: [4.7 Regression] ICE: gimple check: expected
                    gimple_assign(error_mark), have gimple_call() in
                    gimple_assign_rhs_code, at gimple.h:1992
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dominiq@lps.ens.fr
                CC: ira@gcc.gnu.org, jakub@gcc.gnu.org, rguenther@suse.de


On x86_64-apple-darwin10 at revision 181200, compiling the polyhedron test
mdbx.f90 with '-O2 -ftree-vectorize' gives an ICE:

[macbook] lin/test% gfc -c mdbx.f90 -O2 -ftree-vectorize
mdbx.f90: In function 'mlist':
mdbx.f90:1199:0: internal compiler error: gimple check: expected
gimple_assign(error_mark), have gimple_call() in gimple_assign_rhs_code, at
gimple.h:1992

Revision 181085 is OK. The following reduced test reproduces the ICE:

      SUBROUTINE MLIST(MOLsp,PBCx,PBCy,PBCz, X0)
      IMPLICIT NONE
      INTEGER, PARAMETER :: NM=16384
      INTEGER :: MOLsp, i
      DOUBLE PRECISION :: PBCx, PBCy, PBCz, boxjmp, HALf=1./2.
      DOUBLE PRECISION :: X0(3,-2:NM)

         DO i = 1 , MOLsp
            boxjmp = PBCx*INT(X0(1,i)+SIGN(HALf,X0(1,i)))
            X0(1,i) = X0(1,i) - boxjmp
            boxjmp = PBCy*INT(X0(2,i)+SIGN(HALf,X0(2,i)))
            X0(2,i) = X0(2,i) - boxjmp
            boxjmp = PBCz*INT(X0(3,i)+SIGN(HALf,X0(3,i)))
            X0(3,i) = X0(3,i) - boxjmp
         ENDDO
      END



More information about the Gcc-bugs mailing list