| // 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 |
| } |
| |
| |