[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#641859: ICE: gfortran-4.6: ICE on armhf with fbasics



Package: gfortran-4.6
Version: 4.6.1-10
Severity: important

fbasics_2110.79-1 fails to build from source on armhf due to a gfortran ICE:

http://buildd.debian-ports.org/status/fetch.php?pkg=fbasics&arch=armhf&ver=2110.79-1&stamp=1316196251

...
gfortran   -fpic  -O3 -pipe  -g -c gss.f -o gss.o
gss.f:911.72:

      call dcore (vmu, qwk, nobs, nobs, n0, tol, ywk, 0, limnla, nlawk,
                                                                        1
Warning: Rank mismatch in argument 'score' at (1) (rank-1 and scalar)
gss.f:964.13:

     &nlawk, scrwk, varht, info, twk, work1)
             1
Warning: Rank mismatch in argument 'score' at (1) (rank-1 and scalar)
gss.f:1098.13:

     &nlaht, score, varht, info, twk, work1)
             1
Warning: Rank mismatch in argument 'score' at (1) (rank-1 and scalar)
gss.f:817.72:

     *init, prec, maxite, theta, nlaht, score, varht, c, d, wk(iqraux),
                                                                        1
Warning: Type mismatch in argument 'jpvt' at (1); passed REAL(8) to INTEGER(4)
gss.f:1126.15:

     * wk(iv), wk(ijpvt), wk(icdnew), wk(iwtnew), wk(ifitnew), wk(iwk),
               1
Warning: Type mismatch in argument 'jpvt' at (1); passed REAL(8) to INTEGER(4)
gss.f:2763.46:

     *, wk(imu), wk(imuwk), wk(iv), wk(ivwk), wk(ijpvt), wk(icdnew), wk(
                                              1
Warning: Type mismatch in argument 'jpvt' at (1); passed REAL(8) to INTEGER(4)
gss.f: In function 'deval':
gss.f:605:0: internal compiler error: in arm_select_dominance_cc_mode,
at config/arm/arm.c:10625
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.

I used the delta package to produce a minimal testcase for the ICE
which I attach.
You can reproduce the ICE with:

gfortran -O -fpermissive -Wfatal-errors -w fbasics_gss-min.f

Thanks

Konstantinos
      subroutine dcoef (s, lds, nobs, nnull, qraux, jpvt, z, q, ldq, 
     *nlaht, c, d, info, twk)
      end
      subroutine dcrdr (s, lds, nobs, nnull, qraux, jpvt, q, ldq, nlaht,
     & r, ldr, nr, cr, ldcr, dr, lddr, wk, info)
      double precision s(lds,*), qraux(*), q(ldq,*), nlaht, r(ldr,*), 
     &cr(ldcr,*), dr(lddr,*), wk(2,*)
      call dqrsl (s, lds, nobs, nnull, qraux, cr(1,j), cr(1,j), dum, 
     &dum, dum, dum, 10000, info)
      end
      subroutine ddeev (vmu, nobs, q, ldqr, ldqc, n, nq, u, ldu, uaux, 
     *t, x, theta, nlaht, score, varht, hes, ldh, gra, hwk1, hwk2, gwk1,
     * gwk2, kwk, ldk, work1, work2, work3, info)
      double precision q(ldqr,ldqc,*), u(ldu,*), uaux(*), t(2,*), x(*), 
     *theta(*), nlaht, score, varht, hes(ldh,*), gra(*), hwk1(nq,*), 
     *work3(*)
      call dqrslm (u, ldu, n-1, n-2, uaux, kwk(2,2,i), n, 0, info, 
     *work1)
      hes(i,j) = hwk1(i,j) / trc / trc - 2.d0 * gwk1(i) * gwk2(j) / trc 
     *** 3 - 2.d0 * gwk1(j) * gwk2(i) / trc ** 3 - 2.d0 * score * hwk2(
     *i,j) / trc / dfloat (nobs) + 6.d0 * score * gwk2(i) * gwk2(j) / 
     *- gwk1(j) * gwk2(i) / det / dfloat (n) - dfloat (nobs) / dfloat (
     *n) * score * hwk2(i,j) + dfloat (nobs) / dfloat (n) ** 2 * score *
     * gwk2(i) * gwk2(j)
      end
      subroutine deval (vmu, q, ldq, n, z, nint, low, upp, nlaht, score,
     * varht, info, twk, work)
      double precision q(ldq,*), z(*), low, upp, nlaht, score(*), varht,
     * twk(2,*), work(*)
23006 if(.not.(j.le.nint+1))goto 23008
      if(.not.( score(j) .le. minscr .or. j .eq. 1 ))goto 23011
      minscr = score(j)
23011 continue
      j=j+1
      goto 23006
23008 continue
      call dmudr1 (vmu, s, lds, nobs, nnull, q, ldqr, ldqc, nq, y, tol, 
     *wk(ipvtwk), wk(ikwk), wk(iwork1), wk(iwork2), info)
      end
      subroutine dmudr0 (vmu, s, lds, nobs, nnull, q, ldqr, ldqc, nq, y,
     *fo)
      if( vmu .eq. 1 )then
      endif
      call dmudr (vmu1, s, lds, nobs, nnull, q, ldqr, ldqc, nq, y, tol, 
     *init, prec, maxite, theta, nlaht, score, varht, c, d, wk, info)
      end
      subroutine dmudr1 (vmu, s, lds, nobs, nnull, q, ldqr, ldqc, nq, y,
     & tol, init, prec, maxite, theta, nlaht, score, varht, c, d, qraux,
     & jpvt, twk, traux, qwk, ywk, thewk, hes, gra, hwk1, hwk2, gwk1, 
     &gwk2, pvtwk, kwk, work1, work2, info)
      double precision s(lds,*), q(ldqr,ldqc,*), y(*), tol, prec, theta(
     &*), nlaht, score, varht, c(*), d(*), qraux(*), traux(*), twk(2,*),
     &hwk2(nq,*), gwk1(*), gwk2(*), kwk(nobs-nnull,nobs-nnull,*), work1(
     &*), work2(*)
      call dcore (vmu, qwk, nobs, nobs, n0, tol, ywk, 0, limnla, nlawk, 
     &scrwk, varht, info, twk, work1)
      call ddeev (vmu, nobs, q(n0+1,n0+1,1), ldqr, ldqc, n, nq, qwk(n0+
     &2,n0+1), nobs, traux, twk, ywk(n0+1), thewk, nlawk, scrwk, varht, 
     &info)
      call dcore (vmu, qwk, nobs, nobs, n0, tol, ywk, job, limnla, 
     &nlaht, score, varht, info, twk, work1)
      end
      subroutine dnewton1 (cd, nxis, q, nxi, rs, nobs, cntsum, cnt, qdrs
     *, nqd, qdwt, prec, maxiter, mchpr, mrs, wt, fit, mu, v, jpvt, cdne
     *w, wtnew, fitnew, wk, info)
      double precision cd(*), q(nxi,*), rs(nxis,*), qdrs(nqd,*), qdwt(*)
     *, prec, mchpr, mrs(*), wt(*), fit(*), mu(*), v(nxis,*), cdnew(*), 
     *wtnew(*), fitnew(*), wk(*)
      if(cntsum.eq.0)then
      endif
23041 if(v(rkv,rkv).lt.v(1,1)*dsqrt(mchpr))then
      endif
      if(disc0.lt.prec)then
      endif
      if(cntsum.eq.0)then
      endif
      if (job .ne. 0 ) then
   40       if (j .ne. i) then
            endif
      endif
      end
      subroutine drkl (cd, nxis, qdrs, nqd, qdwt, wt0, mchpr, wt, eta, m
     *u, v, jpvt, wk, cdnew, wtnew, prec, maxiter, info)
      double precision cd(*), qdrs(nqd,*), qdwt(*), wt0(*), mchpr, wt(*)
     *, eta(*), mu(*), v(nxis,*), wk(*), cdnew(*), wtnew(*), prec
      if(eta(i).gt.3.d2)then
      endif
      if(flag.eq.1)then
      endif
      if(dabs(mu(idamax(nxis, mu, 1))/mumax).lt.1.d1*mchpr)then
      endif
      if(flag.eq.1)then
      endif
      if(flag.eq.0)then
      endif
      end
      subroutine hrkl (cd, nxis, qdrs, nqd, nx, qdwt, wt0, mchpr, wt, mu
     *, mu0, v, jpvt, wk, cdnew, wtnew, prec, maxiter, info)
      if(tmp.gt.3.d2)then
      endif
      if(flag.eq.1)then
      endif
      end
      subroutine hzdaux1 (cd, nxis, q, nxi, qdrs, nqd, qdwt, nx, mchpr, 
     *wt, v, vwk, jpvt)
      double precision cd(*), q(nxi,*), qdrs(nqd,nxis,*), qdwt(nqd,*), m
     *chpr, wt(nqd,*), v(nxis,*), vwk(nxis,*)
23027 if(v(rkv,rkv).lt.v(1,1)*dsqrt(mchpr))then
      endif
      call hzdnewton1 (cd, nxis, q, nxi, rs, nt, nobs, cntsum, cnt, qdrs
     *, wk(imu), wk(imuwk), wk(iv), wk(ivwk), wk(ijpvt), wk(icdnew), wk(
     *iwtnew), wk(ifitnew), wk(iwk), info)
      end
      subroutine hzdnewton1 (cd, nxis, q, nxi, rs, nt, nobs, cntsum, cnt
     *, qdrs, nqd, qdwt, nx, prec, maxiter, mchpr, mrs, wt, fit, mu, muw
     *k, v, vwk, jpvt, cdnew, wtnew, fitnew, wk, info)
      double precision cd(*), q(nxi,*), rs(nxis,*), qdrs(nqd,nxis,*), qd
     *wt(nqd,*), prec, mchpr, mrs(*), wt(nqd,*), fit(*), mu(*), muwk(*),
     * v(nxis,*), vwk(nxis,*), cdnew(*), wtnew(nqd,*), fitnew(*), wk(*)
      double precision tmp, ddot, fitmean, dasum, lkhd, mumax, lkhdnew, 
     *disc, disc0, trc
      if(cntsum.eq.0)then
      endif
      wt(i,kk) = qdwt(i,kk) * dexp (ddot (nxis, qdrs(i,1,kk), nqd, cd, 1
     *))
      if(cntsum.ne.0)then
      endif
      end
      subroutine reg (sr, nobs, nnull, q, nxi, y, method, alpha, varht, 
     *score, dc, mchpr, v, mu, jpvt, wk, rkv, info)
      double precision sr(nobs,*), q(nxi,*), y(*), alpha, varht, score, 
     *dc(*), mchpr, v(nnull+nxi,*), mu(*), wk(*)
      if(method.eq.5)then
      if(nnull.gt.0)then
      endif
      if(method.eq.2)then
      endif
      endif
      end

Reply to: