brintos

brintos / llvm-project-archived public Read only

0
0
Text · 914 B · e548184 Raw
47 lines · plain
1! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s2 3! Check if finalization works with multiple return statements4 5program test6  integer, device :: a(10)7  logical :: l8 9  if (l) then10    return11  end if12 13  return14end15 16! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "TEST"} {17! CHECK: %[[DECL:.*]]:2 = hlfir.declare18! CHECK: cf.cond_br %{{.*}}, ^bb1, ^bb219! CHECK-NEXT: ^bb1:20! CHECK-NEXT: return21! CHECK-NEXT: ^bb2:22! CHECK-NEXT: return23! CHECK-NEXT: }24 25subroutine sub(l)26  integer, device :: a(10)27  logical :: l28 29  if (l) then30    l = .false.31    return32  end if33 34  return35end36 37! CHECK: func.func @_QPsub(%arg0: !fir.ref<!fir.logical<4>> {fir.bindc_name = "l"}) {38! CHECK: %[[DECL:.*]]:2 = hlfir.declare39! CHECK: cf.cond_br %6, ^bb1, ^bb240! CHECK: ^bb1:41! CHECK: cf.br ^bb342! CHECK: ^bb2:43! CHECK: cf.br ^bb344! CHECK: ^bb3:45! CHECK: cuf.free %[[DECL]]#0 : !fir.ref<!fir.array<10xi32>>46! CHECK: }47