! { dg-do run } ! Test the fix for PR40551 in which the assignment ! was not dealing correctly with non-contiguous lhs ! references; eg. a(1,:) ! ! Reported by by Maciej Zwierzycki ! at http://gcc.gnu.org/ml/fortran/2009-06/msg00254.html ! and by Tobias Burnus on Bugzilla ! integer :: a(2,2) a = -42 a(1,:) = func() if (any (reshape (a, [4]) /= [1, -42, 2, -42])) call abort a = -42 a(2,:) = func() if (any (reshape (a, [4]) /= [-42, 1, -42, 2])) call abort a = -42 a(:,1) = func() if (any (reshape (a, [4]) /= [1, 2, -42, -42])) call abort a = -42 a(:,2) = func() if (any (reshape (a, [4]) /= [-42, -42, 1, 2])) call abort contains function func() integer :: func(2) call sub(func) end function func subroutine sub(a) integer :: a(2) a = [1,2] end subroutine end