! { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } | |
! { dg-options "-w -O2 -ffloat-store -fgcse-after-reload" } | |
! | |
! GCSE after reload made a stack register live across an abnormal | |
! edges for one of the computed jumps. This bombed in reg-stack. | |
function foo(n) | |
real(kind=8) foo | |
integer ix, n, next | |
real(kind=8) xmax, absx | |
foo = 0.0d0 | |
assign 20 to next | |
do ix = 1,n | |
go to next,(10, 30) | |
10 assign 40 to next | |
go to 40 | |
20 if (absx .gt. 8.232d-11) go to 40 | |
30 if (absx .le. xmax) go to 40 | |
xmax = absx | |
40 go to next,(10, 30) | |
end do | |
return | |
end |