2017-12-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gfortran.dg / pr67170.f90
blob80236470f423639d4da32b34a7c16f576734283a
1 ! { dg-do compile }
2 ! { dg-options "-O -fdump-tree-fre1" }
4 module test_module
5 integer, parameter :: r=10
6 integer :: data(r, r), block(r, r, r)
7 contains
8 recursive subroutine foo(arg)
9 integer, intent(in) :: arg
10 integer :: loop, x(r), y(r)
12 where(data(arg, :) /= 0)
13 x = data(arg, :)
14 y = l
15 elsewhere
16 x = 1
17 y = r
18 end where
20 do loop = x(1), y(1)
21 if(block(arg, 1, loop) <= 0) cycle
22 block(arg, 1:4, loop) = block(arg, 1:4, i1) + 1
23 call foo(arg + 2)
24 block(arg, 1:4, loop) = block(arg, 1:4, i1) + 10
25 end do
26 end subroutine foo
28 end module test_module
29 end program
31 ! { dg-final { scan-tree-dump-times "= \\*arg_\[0-9\]+\\(D\\);" 1 "fre1" } }