annotate gcc/testsuite/gfortran.dg/char_initialiser_actual.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do run }
kono
parents:
diff changeset
2 ! { dg-options "-std=legacy" }
kono
parents:
diff changeset
3 !
kono
parents:
diff changeset
4 ! Tests passing of character array initialiser as actual argument.
kono
parents:
diff changeset
5 ! Fixes PR18109.
kono
parents:
diff changeset
6 ! Contributed by Paul Thomas pault@gcc.gnu.org
kono
parents:
diff changeset
7 program char_initialiser
kono
parents:
diff changeset
8 character*5, dimension(3) :: x
kono
parents:
diff changeset
9 character*5, dimension(:), pointer :: y
kono
parents:
diff changeset
10 x=(/"is Ja","ne Fo","nda "/)
kono
parents:
diff changeset
11 call sfoo ("is Ja", x(1))
kono
parents:
diff changeset
12 call afoo ((/"is Ja","ne Fo","nda "/), x)
kono
parents:
diff changeset
13 y => pfoo ((/"is Ja","ne Fo","nda "/))
kono
parents:
diff changeset
14 call afoo (y, x)
kono
parents:
diff changeset
15 contains
kono
parents:
diff changeset
16 subroutine sfoo(ch1, ch2)
kono
parents:
diff changeset
17 character*(*) :: ch1, ch2
kono
parents:
diff changeset
18 if (ch1 /= ch2) call abort ()
kono
parents:
diff changeset
19 end subroutine sfoo
kono
parents:
diff changeset
20 subroutine afoo(ch1, ch2)
kono
parents:
diff changeset
21 character*(*), dimension(:) :: ch1, ch2
kono
parents:
diff changeset
22 if (any(ch1 /= ch2)) call abort ()
kono
parents:
diff changeset
23 end subroutine afoo
kono
parents:
diff changeset
24 function pfoo(ch2)
kono
parents:
diff changeset
25 character*5, dimension(:), target :: ch2
kono
parents:
diff changeset
26 character*5, dimension(:), pointer :: pfoo
kono
parents:
diff changeset
27 allocate(pfoo(size(ch2)))
kono
parents:
diff changeset
28 pfoo = ch2
kono
parents:
diff changeset
29 end function pfoo
kono
parents:
diff changeset
30 end program