1! { dg-do compile }
2!
3! PR fortran/66257
4! Check that typebound function calls are accepted as actual argument.
5!
6MODULE test_class
7  IMPLICIT NONE
8  PRIVATE
9  PUBLIC:: test
10
11  INTEGER, PARAMETER :: dp  = SELECTED_REAL_KIND(15)
12
13  TYPE test
14      PRIVATE
15      CONTAINS
16          PRIVATE
17              PROCEDURE, PUBLIC:: E
18              PROCEDURE, PUBLIC:: Om
19  END TYPE test
20
21CONTAINS
22
23  ELEMENTAL FUNCTION E (self, a)
24    IMPLICIT NONE
25    CLASS(test), INTENT(IN):: self
26    REAL(kind=dp), INTENT(IN):: a
27    REAL(kind=dp):: E
28
29    E = a
30  END FUNCTION E
31
32  ELEMENTAL FUNCTION Om (self, z)
33    IMPLICIT NONE
34    CLASS(test), INTENT(IN):: self
35    REAL(kind=dp), INTENT(IN):: z
36    REAL(kind=dp):: Om
37
38    Om = self%E(self%E(z))
39    Om = log10(self%E(z))
40  END FUNCTION Om
41END MODULE test_class
42