1 ! RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s
3 ! Check the analyzed form of a defined operator or assignment.
5 ! Type-bound defined assignment
10 procedure
, pass(y
) :: b2
=> s2
11 generic
:: assignment(=) => b1
, b2
15 class(t
), intent(out
) :: x
16 integer, intent(in
) :: y
19 real, intent(out
) :: x
20 class(t
), intent(in
) :: y
25 !CHECK: CALL s1(x,1_4)
33 !CHECK: CALL x%b1(1_4)
44 procedure
, pass(x2
) :: b2
=> f
45 generic
:: operator(+) => b2
48 integer pure
function f(x1
, x2
)
49 class(t2
), intent(in
) :: x1
50 class(t2
), intent(in
) :: x2
52 subroutine test2(x
, y
)
62 ! Non-type-bound assignment and operator
66 interface assignment(=)
69 class(t
), intent(out
) :: x
70 integer, intent(in
) :: y
74 integer function f(x
, y
)
76 class(t
), intent(in
) :: x
, y
82 !CHECK: CALL s1(x,2_4)