25 lines · plain
1!RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s2 3!CHECK-LABEL: func.func @_QPunlink_test4!CHECK-SAME: %[[dummyPath:.*]]: !fir.boxchar<1> {fir.bindc_name = "path"}) -> i32 {5integer function unlink_test(path)6CHARACTER(len=255) :: path7 8!CHECK-DAG: %[[func_result:.*]] = fir.alloca i32 {bindc_name = "unlink_test", uniq_name = "_QFunlink_testEunlink_test"}9!CHECK-DAG: %[[func_result_decl:.*]]:{{.*}} = hlfir.declare %[[func_result]] {uniq_name = "_QFunlink_testEunlink_test"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>)10!CHECK-DAG: %[[src_path_addr:.*]] = fir.address_of(@_{{.*}}) : !fir.ref<!fir.char<1,{{.*}}>11!CHECK-DAG: %[[line_value:.*]] = arith.constant {{.*}} : i6412!CHECK-DAG: %[[path:.*]] = fir.convert {{.*}} (!fir.ref<!fir.char<1,{{.*}}>>) -> !fir.ref<i8>13!CHECK-DAG: %[[path_len:.*]] = fir.convert {{.*}} : (index) -> i6414!CHECK-DAG: %[[src_path:.*]] = fir.convert %[[src_path_addr]] : (!fir.ref<!fir.char<1,{{.*}}>) -> !fir.ref<i8>15!CHECK-DAG: %[[line:.*]] = fir.convert %[[line_value]] : (i64) -> i3216!CHECK: %[[unlink_result:.*]] = fir.call @_FortranAUnlink(%[[path]], %[[path_len]], %[[src_path]], %[[line]])17!CHECK-SAME: -> i3218 19! Check _FortranAUnlink result code handling20!CHECK-DAG: hlfir.assign %[[unlink_result]] to %[[func_result_decl]]#0 : i32, !fir.ref<i32>21!CHECK-DAG: %[[load_result:.*]] = fir.load %[[func_result_decl]]#0 : !fir.ref<i32>22!CHECK: return %[[load_result]] : i3223unlink_test = unlink(path)24end function unlink_test25