------- Additional Comments From Thomas dot Koenig at online dot de  2004-11-22 
12:29 -------
(In reply to comment #5)
> Hmmm, I do not get this on my powerpc-unknown-linux-gnu:

I am also not getting this with -O on ia64-unknown-linux-gnu .  Apparently,
the array assignment in bar is commented away, and the stack isn't clobbered.

Here is another testcase, which causes the bug to be exposed (for me,
at least):

$ gfortran -v
Reading specs from /home/zfkts/lib/gcc/ia64-unknown-linux-gnu/4.0.0/specs
Configured with: ../gcc-4.0-20041107/configure --prefix=/home/zfkts
--enable-languages=c,c++,f95
Thread model: posix
gcc version 4.0.0 20041107 (experimental)
$ cat foobar.f90
program main
  call foo
  call bar(i)
  call foo
end program main

subroutine foo
  integer i,g,h
  data i/0/
  equivalence (g,h)
  save g
  if (i == 0) then
     i = 1
     h = 12345
  end if
  print *,h
end subroutine foo

subroutine bar(n)
  integer a(10)
  a = (/ (i, i=1,10) /)
  n = sum(a)
end subroutine bar
$ gfortran foobar.f90 && ./a.out
       12345
          55
$ gfortran -O foobar.f90 && ./a.out
       12345
           7


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18518

Reply via email to