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