blob: 274eb9f0aecc70c73ad967eb1611d1ee3a0bb8e5 [file] [log] [blame]
// RUN: %target-sil-opt -ownership-dumper %s -o /dev/null | %FileCheck %s
sil_stage canonical
import Builtin
class Klass {}
// CHECK-LABEL: Dumping Function: 'foo'
// CHECK: Visiting: %1 = unchecked_ref_cast %0 : $Builtin.NativeObject to $Klass
// CHECK: Operand Ownership Map:
// CHECK: Op #: 0
// CHECK: Ownership Map: -- OperandOwnershipKindMap --
// CHECK: unowned: No.
// CHECK: owned: Yes. Liveness: MustBeInvalidated
// CHECK: guaranteed: No.
// CHECK: any: Yes. Liveness: MustBeLive
// CHECK: Results Ownership Kinds:
// CHECK: Result: %1 = unchecked_ref_cast %0 : $Builtin.NativeObject to $Klass
// CHECK: Kind: owned
// CHECK: Visiting: return %1 : $Klass
// CHECK: Operand Ownership Map:
// CHECK: Op #: 0
// CHECK: Ownership Map: -- OperandOwnershipKindMap --
// CHECK: unowned: No.
// CHECK: owned: Yes. Liveness: MustBeInvalidated
// CHECK: guaranteed: No.
// CHECK: any: Yes. Liveness: MustBeLive
sil [ossa] @foo : $@convention(thin) (@owned Builtin.NativeObject) -> @owned Klass {
bb0(%0 : @owned $Builtin.NativeObject):
%1 = unchecked_ref_cast %0 : $Builtin.NativeObject to $Klass
return %1 : $Klass
}