1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
! { dg-do run }
! Tests the fix for PR24519, in which assignments with the same
! range of an assumed shape array, on the lhs and rhs, would be
! treated as causing a dependency.
!
! Contributed by Paul.Thomas <pault@gcc.gnu.org>
!
integer, parameter :: n = 100
real :: x(n, n), v
x = 1
v = 0.1
call foo (x, v)
if (abs(sum (x) - 91.10847) > 1e-3) print *, sum (x)
contains
subroutine foo (b, d)
real :: b(:, :)
real :: temp(n), c, d
integer :: j, k
do k = 1, n
temp = b(:,k)
do j = 1, n
c = b(k,j)*d
b(:,j) = b(:,j)-temp*c ! This was the offending assignment.
b(k,j) = c
end do
end do
end subroutine foo
end
|