! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s ! CHECK-LABEL: func @_QPrepeat_test( ! CHECK-SAME: %[[arg0:.*]]: !fir.boxchar<1>{{.*}}, %[[arg1:.*]]: !fir.ref{{.*}}) { subroutine repeat_test(c, n) character(*) :: c integer :: n ! CHECK-DAG: %[[tmpBox:.*]] = fir.alloca !fir.box>> ! CHECK-DAG: %[[c:.*]]:2 = fir.unboxchar %[[arg0]] : (!fir.boxchar<1>) -> (!fir.ref>, index) ! CHECK-DAG: %[[cDecl:.*]]:2 = hlfir.declare %[[c]]#0 typeparams %[[c]]#1 ! CHECK-DAG: %[[nDecl:.*]]:2 = hlfir.declare %[[arg1]] ! CHECK-DAG: %[[ni32:.*]] = fir.load %[[nDecl]]#0 : !fir.ref ! CHECK-DAG: %[[n:.*]] = fir.convert %[[ni32]] : (i32) -> i64 ! CHECK-DAG: %[[cBox:.*]] = fir.embox %[[cDecl]]#1 typeparams %[[c]]#1 : (!fir.ref>, index) -> !fir.box> ! CHECK-DAG: %[[cBoxNone:.*]] = fir.convert %[[cBox]] : (!fir.box>) -> !fir.box ! CHECK-DAG: %[[resBox:.*]] = fir.convert %[[tmpBox]] : (!fir.ref>>>) -> !fir.ref> ! CHECK: fir.call @{{.*}}Repeat(%[[resBox]], %[[cBoxNone]], %[[n]], {{.*}}, {{.*}}) {{.*}}: (!fir.ref>, !fir.box, i64, !fir.ref, i32) -> () ! CHECK: fir.call @{{.*}}bar_repeat_test call bar_repeat_test(repeat(c,n)) return end subroutine