! RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s
! Ensures that parentheses are preserved with derived types
module m
type :: t
integer :: n
end type
contains
subroutine sub(x)
type(t), intent(in) :: x
end subroutine
function f(m)
type(t), pointer :: f
integer, intent(in) :: m
type(t), save, target :: res
res%n = m
f => res
end function
subroutine test
type(t) :: x
x = t(1)
!CHECK: CALL sub(t(n=1_4))
call sub(t(1))
!CHECK: CALL sub((t(n=1_4)))
call sub((t(1)))
!CHECK: CALL sub(x)
call sub(x)
!CHECK: CALL sub((x))
call sub((x))
!CHECK: CALL sub(f(2_4))
call sub(f(2))
!CHECK: CALL sub((f(2_4)))
call sub((f(2)))
end subroutine
end module