! { dg-do run }
! Test the fix for pr22146, where and elemental subroutine with
! array actual arguments would cause an ICE in gfc_conv_function_call.
! The module is the original test case and the rest is a basic
! functional test of the scalarization of the function call.
!
! Contributed by Erik Edelmann  <erik.edelmann@iki.fi>
!             and Paul Thomas   <pault@gcc.gnu.org>

  module pr22146

contains

    elemental subroutine foo(a)
      integer, intent(out) :: a
      a = 0
    end subroutine foo

    subroutine bar()
      integer :: a(10)
      call foo(a)
    end subroutine bar

end module pr22146

  use pr22146
  real, dimension (2)  :: x, y
  real :: u, v
  x = (/1.0, 2.0/)
  u = 42.0

  call bar ()

! Check the various combinations of scalar and array.
  call foobar (x, y)
  if (any(y.ne.-x)) STOP 1

  call foobar (u, y)
  if (any(y.ne.-42.0)) STOP 2

  call foobar (u, v)
  if (v.ne.-42.0) STOP 3

  v = 2.0
  call foobar (v, x)
  if (any(x /= -2.0)) STOP 4

! Test an expression in the INTENT(IN) argument
  x = (/1.0, 2.0/)
  call foobar (cos (x) + u, y)
  if (any(abs (y + cos (x) + u) .gt. 4.0e-6)) STOP 5

contains

  elemental subroutine foobar (a, b)
    real, intent(IN) :: a
    real, intent(out) :: b
    b = -a
  end subroutine foobar
end
