blob: 1e62711d7e0b9267573527ec62f2cdc21caba5e3 [file] [edit]
! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
! CHECK-LABEL: func @_QPtrim_test(
! CHECK-SAME: %[[arg0:.*]]: !fir.boxchar<1>{{.*}})
subroutine trim_test(c)
character(*) :: c
! CHECK-DAG: %[[c:.*]]:2 = fir.unboxchar %[[arg0]] : (!fir.boxchar<1>) -> (!fir.ref<!fir.char<1,?>>, index)
! CHECK-DAG: %[[cDecl:.*]]:2 = hlfir.declare %[[c]]#0 typeparams %[[c]]#1 {{.*}}{uniq_name = "_QFtrim_testEc"}
! CHECK: %[[trimmed:.*]] = hlfir.char_trim %[[cDecl]]#0 : (!fir.boxchar<1>) -> !hlfir.expr<!fir.char<1,?>>
! CHECK: %[[trimLen:.*]] = hlfir.get_length %[[trimmed]] : (!hlfir.expr<!fir.char<1,?>>) -> index
! CHECK: %[[assoc:.*]]:3 = hlfir.associate %[[trimmed]] typeparams %[[trimLen]] {adapt.valuebyref}
! CHECK: fir.call @{{.*}}bar_trim_test(%[[assoc]]#0)
! CHECK: hlfir.end_associate %[[assoc]]#1, %[[assoc]]#2
! CHECK: hlfir.destroy %[[trimmed]] : !hlfir.expr<!fir.char<1,?>>
call bar_trim_test(trim(c))
return
end subroutine