! { 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
