! { dg-do compile } ! ! Testcases from PR32002. ! PROGRAM test_pr32002 CALL test_1() ! scalar/vector CALL test_2() ! vector/vector CALL test_3() ! matrix/vector CALL test_4() ! matrix/matrix CONTAINS ELEMENTAL FUNCTION f(x) INTEGER, INTENT(in) :: x INTEGER :: f f = x END FUNCTION SUBROUTINE test_1() INTEGER :: a = 0, b(2) = 0 a = f(b) ! { dg-error "Incompatible ranks" } b = f(a) ! ok, set all array elements to f(a) END SUBROUTINE SUBROUTINE test_2() INTEGER :: a(2) = 0, b(3) = 0 a = f(b) ! { dg-error "Different shape" } a = f(b(1:2)) ! ok, slice, stride 1 a = f(b(1:3:2)) ! ok, slice, stride 2 END SUBROUTINE SUBROUTINE test_3() INTEGER :: a(4) = 0, b(2,2) = 0 a = f(b) ! { dg-error "Incompatible ranks" } a = f(RESHAPE(b, (/ 4 /))) ! ok, same shape END SUBROUTINE SUBROUTINE test_4() INTEGER :: a(2,2) = 0, b(3,3) = 0 a = f(b) ! { dg-error "Different shape" } a = f(b(1:3, 1:2)) ! { dg-error "Different shape" } a = f(b(1:3:2, 1:3:2)) ! ok, same shape END SUBROUTINE END PROGRAM