brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 13fcfee Raw
31 lines · plain
1! RUN: %flang_fc1 -emit-mlir %s -o - | FileCheck %s --check-prefix=BEFORE2! RUN: %flang_fc1 -emit-mlir %s -o - | fir-opt --abstract-result | FileCheck %s --check-prefix=AFTER3module a4  type f5  contains6! BEFORE: fir.address_of(@_QMaPfoo) : (!fir.ref<!fir.type<_QMaTf>>) -> !fir.box<!fir.heap<!fir.char<1,?>>>7! AFTER: [[ADDRESS:%.*]] = fir.address_of(@_QMaPfoo) : (!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>, !fir.ref<!fir.type<_QMaTf>>) -> ()8! AFTER: fir.convert [[ADDRESS]] : ((!fir.ref<!fir.box<!fir.heap<!fir.char<1,?>>>>, !fir.ref<!fir.type<_QMaTf>>) -> ()) -> ((!fir.ref<!fir.type<_QMaTf>>) -> !fir.box<!fir.heap<!fir.char<1,?>>>)9! AFTER-NOT: fir.address_of(@_QMaPfoo) : (!fir.ref<!fir.type<_QMaTf>>) -> !fir.box<!fir.heap<!fir.char<1,?>>>10    procedure, nopass :: foo11  end type f12contains13  function foo(obj) result(bar)14    type(f) :: obj15    character(len=:), allocatable :: bar16 17    if (.TRUE.) then18      bar = "true"19    else20      bar = "false"21    endif22  end function foo23end module a24 25program main26  use a27 28  type(f) :: obj29  print *, obj%foo(obj)30end program31