Silverfrost Forums

Welcome to our forums

ICE with /64 /opt

5 Jul 2019 3:05 (Edited: 5 Jul 2019 5:29) #23918

The following code, when compiled with /64 /opt, causes an internal compiler error. When the lines containing L1 are removed, the ICE does not occur.

      subroutine revprt()
      implicit none
      integer ia,ib,idx,j,kpagen

      character*170 crec
      logical*1  ::   l1
!
      kpagen = 0
      do idx = kpagen,1,-1
         do j = 1,42
            ia = 1 + 4*(j-1)
            ib = ia + 3
            crec(ia:ib) = '    '
         end do
         do ia = 168,1,-1
            if(crec(ia:ia) .ne. ' ') exit
         end do
         l1  = .false.
         do j = 14,1,-1
            if(crec(j:j) .ne. ' ' .and. .not.l1) l1 = .true.
            if(l1 .and. crec(j:j) .eq. ' ') exit
         end do
         kpagen = kpagen + 1
         if(idx .eq. 1) exit
      end do
      return
      end

P.S.: If the type of variable L1 is changed from LOGICAL*1 to just LOGICAL, the ICE goes away.

5 Jul 2019 4:47 #23920

Thank you for this bug report. I will make a note that it needs fixing.

8 Jul 2019 6:47 #23937

This has now been fixed for the next release of FTN95.

8 Jul 2019 11:51 #23940

Thank you for the prompt response.

Please login to reply.