1! { dg-do compile }
2! Tests the patch for PRs 25084, 20852, 25085 and 25086, all of
3! which involve assumed character length functions.
4! This test checks the things that should not emit errors.
5!
6! Contributed by Paul Thomas  <pault@gcc.gnu.org>
7!
8function is_OK (ch)                ! { dg-warning "Obsolescent feature" }
9  character(*) is_OK, ch           ! OK in an external function
10  is_OK = ch
11end function is_OK
12
13! The warning occurs twice for the next line; for 'more_OK' and for 'fcn';
14function more_OK (ch, fcn)         ! { dg-warning "Obsolescent feature" }
15  character(*) more_OK, ch
16  character (*), external :: fcn   ! OK as a dummy argument
17  more_OK = fcn (ch)
18end function more_OK
19
20  character(4) :: answer
21  character(4), external :: is_OK, more_OK
22
23  answer = is_OK ("isOK")          ! LEN defined in calling scope
24  print *, answer
25
26  answer = more_OK ("okay", is_OK) ! Actual arg has defined LEN
27  print *, answer
28
29  answer = also_OK ("OKOK")
30  print *, answer
31
32contains
33  function also_OK (ch)
34    character(4) also_OK
35    character(*) ch
36    also_OK = is_OK (ch)            ! LEN obtained by host association
37  end function also_OK
38END
39
40