diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pr23095.f')
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr23095.f | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr23095.f b/gcc/testsuite/gfortran.dg/pr23095.f new file mode 100644 index 000000000..06b78b348 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr23095.f @@ -0,0 +1,22 @@ + ! { 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 |