view gcc/testsuite/gfortran.dg/pr64530.f90 @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
line wrap: on
line source

! { dg-do run }

program bug
  ! Bug triggered with at least three elements
  integer, parameter :: asize = 3

  double precision,save :: ave(asize)
  double precision,save :: old(asize)
  double precision,save :: tmp(asize)

  ave(:) = 10.d0
  old(:) = 3.d0
  tmp(:) = 0.d0

  call buggy(2.d0,asize,ave,old,tmp)
  if (any (tmp(:) .ne. 3.5)) STOP 1
end

subroutine buggy(scale_factor, asize, ave, old, tmp)

  implicit none
  ! Args
  double precision scale_factor
  integer asize
  double precision ave(asize)
  double precision old(asize)
  double precision tmp(asize)

  ! Local 
  integer i

  do i = 1, asize
    tmp(i) = ave(i) - old(i)
    old(i) = ave(i)
    tmp(i) = tmp(i) / scale_factor
  end do

end subroutine buggy