! { dg-do compile }
!
! PR fortran/48820
!
! Test TYPE(*)
!
! Based on a contributed test case by Walter Spector
!
module mpi_interface
  implicit none

  interface mpi_send
    subroutine MPI_Send (buf, count, datatype, dest, tag, comm, ierr)
      type(*), intent(in) :: buf(:)
      integer, intent(in) :: count
      integer, intent(in) :: datatype
      integer, intent(in) :: dest
      integer, intent(in) :: tag
      integer, intent(in) :: comm
      integer, intent(out):: ierr
    end subroutine
  end interface

  interface mpi_send2
    subroutine MPI_Send2 (buf, count, datatype, dest, tag, comm, ierr)
      type(*), intent(in) :: buf(*)
      integer, intent(in) :: count
      integer, intent(in) :: datatype
      integer, intent(in) :: dest
      integer, intent(in) :: tag
      integer, intent(in) :: comm
      integer, intent(out):: ierr
    end subroutine
  end interface

end module

use mpi_interface
  real :: a(3)
  integer :: b(3)
  call foo(a)
  call foo(b)
  call foo(a(1:2))
  call foo(b(1:2))
  call MPI_Send(a, 1, 1,1,1,j,i)
  call MPI_Send(b, 1, 1,1,1,j,i)
  call MPI_Send2(a, 1, 1,1,1,j,i)
  call MPI_Send2(b, 1, 1,1,1,j,i)
contains
    subroutine foo(x)
    type(*):: x(*)
    call MPI_Send2(x, 1, 1,1,1,j,i)
  end
end
