1! { dg-do run }
2! { dg-options "-std=legacy" }
3!
4! Tests passing of character array initialiser as actual argument.
5! Fixes PR18109.
6! Contributed by Paul Thomas pault@gcc.gnu.org
7program char_initialiser
8  character*5, dimension(3) :: x
9  character*5, dimension(:), pointer :: y
10  x=(/"is Ja","ne Fo","nda  "/)
11  call sfoo ("is Ja", x(1))
12  call afoo ((/"is Ja","ne Fo","nda  "/), x)
13  y => pfoo ((/"is Ja","ne Fo","nda  "/))
14  call afoo (y, x)
15contains
16  subroutine sfoo(ch1, ch2)
17     character*(*)               :: ch1, ch2
18     if (ch1 /= ch2) STOP 1
19  end subroutine sfoo
20  subroutine afoo(ch1, ch2)
21     character*(*), dimension(:) :: ch1, ch2
22     if (any(ch1 /= ch2)) STOP 2
23  end subroutine afoo
24  function pfoo(ch2)
25     character*5, dimension(:), target  :: ch2
26     character*5, dimension(:), pointer :: pfoo
27     allocate(pfoo(size(ch2)))
28     pfoo = ch2
29  end function pfoo
30end program
31