brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · da22318 Raw
53 lines · plain
1! RUN: bbc -emit-hlfir %s -o - | FileCheck %s2 3! Test fir.dummy_scope assignment to argument x4subroutine sub_arg(x)5  integer :: x6end subroutine sub_arg7! CHECK-LABEL:   func.func @_QPsub_arg(8! CHECK-SAME:                          %[[VAL_0:[0-9]+|[a-zA-Z$._-][a-zA-Z0-9$._-]*]]: !fir.ref<i32> {fir.bindc_name = "x"}) {9! CHECK:           %[[VAL_1:.*]] = fir.dummy_scope : !fir.dscope10! CHECK:           %[[VAL_2:.*]]:2 = hlfir.declare %[[VAL_0]] dummy_scope %[[VAL_1]] arg {{[0-9]+}} {uniq_name = "_QFsub_argEx"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>)11! CHECK:           return12! CHECK:         }13 14! Test fir.dummy_scope is created even when there are no arguments.15subroutine sub_noarg16end subroutine sub_noarg17! CHECK-LABEL:   func.func @_QPsub_noarg() {18! CHECK:           %[[VAL_0:.*]] = fir.dummy_scope : !fir.dscope19! CHECK:           return20! CHECK:         }21 22! Test fir.dummy_scope assignment to argument x23function func_arg(x)24  integer :: x, func_arg25  func_arg = x26end function func_arg27! CHECK-LABEL:   func.func @_QPfunc_arg(28! CHECK-SAME:                           %[[VAL_0:[0-9]+|[a-zA-Z$._-][a-zA-Z0-9$._-]*]]: !fir.ref<i32> {fir.bindc_name = "x"}) -> i32 {29! CHECK:           %[[VAL_1:.*]] = fir.dummy_scope : !fir.dscope30! CHECK:           %[[VAL_2:.*]] = fir.alloca i32 {bindc_name = "func_arg", uniq_name = "_QFfunc_argEfunc_arg"}31! CHECK:           %[[VAL_3:.*]]:2 = hlfir.declare %[[VAL_2]] {uniq_name = "_QFfunc_argEfunc_arg"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>)32! CHECK:           %[[VAL_4:.*]]:2 = hlfir.declare %[[VAL_0]] dummy_scope %[[VAL_1]] arg {{[0-9]+}} {uniq_name = "_QFfunc_argEx"} : (!fir.ref<i32>, !fir.dscope) -> (!fir.ref<i32>, !fir.ref<i32>)33! CHECK:           %[[VAL_5:.*]] = fir.load %[[VAL_4]]#0 : !fir.ref<i32>34! CHECK:           hlfir.assign %[[VAL_5]] to %[[VAL_3]]#0 : i32, !fir.ref<i32>35! CHECK:           %[[VAL_6:.*]] = fir.load %[[VAL_3]]#0 : !fir.ref<i32>36! CHECK:           return %[[VAL_6]] : i3237! CHECK:         }38 39! Test fir.dummy_scope is created even when there are no arguments.40function func_noarg41  integer :: func_noarg42  func_noarg = 143end function func_noarg44! CHECK-LABEL:   func.func @_QPfunc_noarg() -> i32 {45! CHECK:           %[[VAL_0:.*]] = fir.dummy_scope : !fir.dscope46! CHECK:           %[[VAL_1:.*]] = fir.alloca i32 {bindc_name = "func_noarg", uniq_name = "_QFfunc_noargEfunc_noarg"}47! CHECK:           %[[VAL_2:.*]]:2 = hlfir.declare %[[VAL_1]] {uniq_name = "_QFfunc_noargEfunc_noarg"} : (!fir.ref<i32>) -> (!fir.ref<i32>, !fir.ref<i32>)48! CHECK:           %[[VAL_3:.*]] = arith.constant 1 : i3249! CHECK:           hlfir.assign %[[VAL_3]] to %[[VAL_2]]#0 : i32, !fir.ref<i32>50! CHECK:           %[[VAL_4:.*]] = fir.load %[[VAL_2]]#0 : !fir.ref<i32>51! CHECK:           return %[[VAL_4]] : i3252! CHECK:         }53