! { dg-do run }
!
! Test the fix for PR96727
!

program cref_p

  implicit none
  
  integer                     :: i

  integer,          parameter :: n = 3
  integer,          parameter :: p(*) = [(i, i=1,n*n)]
  character(len=*), parameter :: q = repeat('a', n*n)
  
  integer            :: a(n,n)
  character(len=n*n) :: c

  a = reshape(p, shape=[n,n])
  call csub(a, c)
  if (c/=q) stop 1
  stop

contains

  subroutine csub(a, b)
    integer,                intent(in)  :: a(..)
    character(len=size(a)), intent(out) :: b

    b = repeat('a', len(b))
    return
  end subroutine csub
  
end program cref_p