brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · e2c76c0 Raw
34 lines · plain
1// RUN: tco %s | FileCheck %s2// RUN: %flang_fc1 -emit-llvm %s -o - | FileCheck %s3 4// Test of building and passing boxchar.5 6func.func private @callee(%x : !fir.boxchar<1>)7 8// CHECK-LABEL: define void @get_name9func.func @get_name() {10  %1 = fir.address_of (@name) : !fir.ref<!fir.char<1,9>>11  %2 = arith.constant 9 : i6412  %3 = fir.convert %1 : (!fir.ref<!fir.char<1,9>>) -> !fir.ref<!fir.char<1,?>>13  %4 = fir.emboxchar %3, %2 : (!fir.ref<!fir.char<1,?>>, i64) -> !fir.boxchar<1>14  // CHECK: call void @callee(ptr @name, i64 9)15  fir.call @callee(%4) : (!fir.boxchar<1>) -> ()16  return17}18 19// CHECK-LABEL: define void @get_name_220func.func @get_name_2() {21  %1 = fir.address_of (@name) : !fir.ref<!fir.char<1,9>>22  %2 = arith.constant 9 : i6423  %4 = fir.emboxchar %1, %2 : (!fir.ref<!fir.char<1,9>>, i64) -> !fir.boxchar<1>24  // CHECK: call void @callee(ptr @name, i64 9)25  fir.call @callee(%4) : (!fir.boxchar<1>) -> ()26  return27}28 29fir.global @name constant : !fir.char<1,9> {30  %str = fir.string_lit "Your name"(9) : !fir.char<1,9>31  //constant 132  fir.has_value %str : !fir.char<1,9>33}34