! 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>, 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> ! CHECK: %[[trimLen:.*]] = hlfir.get_length %[[trimmed]] : (!hlfir.expr>) -> 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> call bar_trim_test(trim(c)) return end subroutine