1! { dg-do compile }
2
3! PR fortran/41615
4! Output nicer error message for invalid assumed-len character function result
5! depending on what kind of contained procedure it is.
6
7module funcs
8   implicit none
9contains
10      function assumed_len(x) ! { dg-error "module procedure" }
11         character(*) assumed_len
12         integer, intent(in) :: x
13      end function assumed_len
14end module funcs
15
16module mod2
17  implicit none
18contains
19  subroutine mysub ()
20    contains
21      function assumed_len(x) ! { dg-error "internal function" }
22         character(*) assumed_len
23         integer, intent(in) :: x
24      end function assumed_len
25  end subroutine
26end module mod2
27
28program main
29  implicit none
30contains
31      function assumed_len(x) ! { dg-error "internal function" }
32         character(*) assumed_len
33         integer, intent(in) :: x
34      end function assumed_len
35end program main
36