1! { dg-do compile }
2! PR 18883: Fake result variables of non-constant length, with ENTRY
3function s_to_c(chars)
4    character, pointer :: chars(:)
5    character(len=len(chars)) :: s_to_c, s_to_c_2
6    s_to_c = 'a'
7    return
8entry s_to_c_2(chars)
9    s_to_c_2 = 'b'
10    return
11end function s_to_c
12
13program huj
14
15    implicit none
16    interface
17        function s_to_c(chars)
18            character, pointer :: chars(:)
19            character(len=len(chars)) :: s_to_c
20        end function s_to_c
21
22        function s_to_c_2(chars)
23            character, pointer :: chars(:)
24            character(len=len(chars)) :: s_to_c_2
25        end function s_to_c_2
26    end interface
27
28    character, pointer :: c(:)
29    character(3) :: s
30
31    allocate(c(5))
32    c = (/"a", "b", "c" /)
33    s = s_to_c(c)
34    s = s_to_c_2(c)
35
36end program huj
37