29 lines
689 B
Fortran
29 lines
689 B
Fortran
! { 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
|