| // RUN: %target-swift-frontend -emit-ir %s | %FileCheck --check-prefix=CHECK --check-prefix=CHECK-%target-runtime %s |
| |
| sil_stage canonical |
| |
| import Builtin |
| |
| sil @anyobject_user : $@convention(thin) (@guaranteed Builtin.AnyObject) -> () |
| |
| // CHECK-LABEL: @retain_release_unknown_object |
| sil [ossa] @retain_release_unknown_object : $@convention(thin) (@guaranteed Builtin.AnyObject) -> () { |
| entry(%x : @guaranteed $Builtin.AnyObject): |
| // CHECK-native: swift_retain |
| // CHECK-objc: swift_unknownObjectRetain |
| %y = copy_value %x : $Builtin.AnyObject |
| br bb1 |
| |
| bb1: |
| %func = function_ref @anyobject_user : $@convention(thin) (@guaranteed Builtin.AnyObject) -> () |
| apply %func(%y) : $@convention(thin) (@guaranteed Builtin.AnyObject) -> () |
| // CHECK-native: swift_release |
| // CHECK-objc: swift_unknownObjectRelease |
| destroy_value %y : $Builtin.AnyObject |
| return undef : $() |
| } |