c { dg-do run } c PR optimization/13037 c Contributed by Kirill Smelkov c bug symptom: zeta(kkzc) seems to reference to zeta(kkzc-1) instead c with gcc-3.2.2 it is OK, so it is a regression. c subroutine bug1(expnt) implicit none double precision zeta common /bug1_area/zeta(3) double precision expnt(3) integer k, kkzc kkzc=0 do k=1,3 kkzc = kkzc + 1 zeta(kkzc) = expnt(k) enddo c the following line activates the bug call bug1_activator(kkzc) end c dummy subroutine subroutine bug1_activator(inum) implicit none integer inum end c test driver program test_bug1 implicit none double precision zeta common /bug1_area/zeta(3) double precision expnt(3) zeta(1) = 0.0d0 zeta(2) = 0.0d0 zeta(3) = 0.0d0 expnt(1) = 1.0d0 expnt(2) = 2.0d0 expnt(3) = 3.0d0 call bug1(expnt) if ((zeta(1).ne.1) .or. (zeta(2).ne.2) .or. (zeta(3).ne.3)) then call abort endif end