https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92318

            Bug ID: 92318
           Summary: Nondeterministic ICE with -mcmodel=large -O2
           Product: gcc
           Version: 7.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jellby at yahoo dot com
  Target Milestone: ---

Compiling this Fortran code with -mcmodel=large -O2 segfaults intermittently:

      subroutine diffeq (nvar,y,x1,x2,eps,h1,gvalue)
      implicit none
      real*8, parameter :: tiny=1.0d-30
      integer i,nvar,nstep,maxstep
      real*8 x,x1,x2,h,h1,eps,hnext,hdid,y(*)
      real*8, allocatable :: dydx(:),yscal(:)
      logical terminate
      external gvalue
      terminate = .false.
      h = sign(h1,x2-x1)
      nstep = 0
      maxstep = 100
      allocate (dydx(nvar))
      allocate (yscal(nvar))
      do while (.not. terminate)
         do i = 1, nvar
            yscal(i) = abs(y(i)) + abs(h*dydx(i)) + tiny
         end do
         call bsstep (nvar,x,dydx,y,h,eps,yscal,hdid,hnext,gvalue)
         h = hnext
         nstep = nstep + 1
         if (nstep .ge. maxstep) then
            terminate = .true.
         end if
      end do
      deallocate (dydx)
      deallocate (yscal)
      end

$ /usr/bin/gfortran -c -mcmodel=large diffeq.f -o diffeq.o -O2
$ /usr/bin/gfortran -c -mcmodel=large diffeq.f -o diffeq.o -O2
diffeq.f:29:0:

       end

internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
$ /usr/bin/gfortran -c -mcmodel=large diffeq.f -o diffeq.o -O2
$ /usr/bin/gfortran -c -mcmodel=large diffeq.f -o diffeq.o -O2
$ /usr/bin/gfortran --version
GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Reply via email to