mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
SILGen: Remaining fixes for @callee_guaranteed closures and enable it
- Fix block to func reabstraction thunks block argument handling - Forward cast ownership - Fix applyPartiallyAppliedSuperMethod ownership for @callee_guaranteed closures - Avoid a copy in buildBlockToFuncThunkBody - Update tests for callee_guaranteed closures SR-5441 rdar://33255593
This commit is contained in:
@@ -56,7 +56,7 @@ func objc_generic_partial_apply<T : NSRuncing>(_ x: T) {
|
||||
_ = x.runce
|
||||
|
||||
// CHECK: [[FN:%.*]] = function_ref @[[THUNK1]] :
|
||||
// CHECK: [[METHOD:%.*]] = partial_apply [[FN]]<T>()
|
||||
// CHECK: [[METHOD:%.*]] = partial_apply [callee_guaranteed] [[FN]]<T>()
|
||||
// CHECK: destroy_value [[METHOD]]
|
||||
_ = T.runce
|
||||
|
||||
@@ -72,7 +72,7 @@ func objc_generic_partial_apply<T : NSRuncing>(_ x: T) {
|
||||
// CHECK: sil shared [serializable] [thunk] @[[THUNK1]] :
|
||||
// CHECK: bb0([[SELF:%.*]] : @owned $Self):
|
||||
// CHECK: [[FN:%.*]] = function_ref @[[THUNK1_THUNK:_T014objc_protocols9NSRuncingP5runceSo8NSObjectCyFTO]] :
|
||||
// CHECK: [[METHOD:%.*]] = partial_apply [[FN]]<Self>([[SELF]])
|
||||
// CHECK: [[METHOD:%.*]] = partial_apply [callee_guaranteed] [[FN]]<Self>([[SELF]])
|
||||
// CHECK: return [[METHOD]]
|
||||
// CHECK: } // end sil function '[[THUNK1]]'
|
||||
|
||||
@@ -87,7 +87,7 @@ func objc_generic_partial_apply<T : NSRuncing>(_ x: T) {
|
||||
|
||||
// CHECK: sil shared [serializable] [thunk] @[[THUNK2]] :
|
||||
// CHECK: [[FN:%.*]] = function_ref @[[THUNK2_THUNK:_T014objc_protocols9NSRuncingP5minceSo8NSObjectCyFZTO]]
|
||||
// CHECK: [[METHOD:%.*]] = partial_apply [[FN]]<Self>(%0)
|
||||
// CHECK: [[METHOD:%.*]] = partial_apply [callee_guaranteed] [[FN]]<Self>(%0)
|
||||
// CHECK: return [[METHOD]]
|
||||
// CHECK: } // end sil function '[[THUNK2]]'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user