summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/pr42108.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/pr42108.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/pr42108.f9027
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr42108.f90 b/gcc/testsuite/gfortran.dg/pr42108.f90
new file mode 100644
index 000000000..e97dc3756
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr42108.f90
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! { dg-options "-O2 -fdump-tree-fre" }
+
+subroutine eval(foo1,foo2,foo3,foo4,x,n,nnd)
+ implicit real*8 (a-h,o-z)
+ dimension foo3(n),foo4(n),x(nnd)
+ nw=0
+ foo3(1)=foo2*foo4(1)
+ do i=2,n
+ foo3(i)=foo2*foo4(i)
+ do j=1,i-1
+ temp=0.0d0
+ jmini=j-i
+ do k=i,nnd,n
+ temp=temp+(x(k)-x(k+jmini))**2
+ end do
+ temp = sqrt(temp+foo1)
+ foo3(i)=foo3(i)+temp*foo4(j)
+ foo3(j)=foo3(j)+temp*foo4(i)
+ end do
+ end do
+end subroutine eval
+
+! There should be only one load from n left
+
+! { dg-final { scan-tree-dump-times "\\*n_" 1 "fre" } }
+! { dg-final { cleanup-tree-dump "fre" } }