File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -2623,7 +2623,16 @@ class AsyncCallEmission final : public CallEmission {
2623
2623
assert (currentResumeFn == nullptr );
2624
2624
currentResumeFn =
2625
2625
IGF.Builder .CreateIntrinsicCall (llvm::Intrinsic::coro_async_resume, {});
2626
- return currentResumeFn;
2626
+ auto signedResumeFn = currentResumeFn;
2627
+ // Sign the task resume function with the C function pointer schema.
2628
+ if (auto schema = IGF.IGM .getOptions ().PointerAuth .FunctionPointers ) {
2629
+ // TODO: use the Clang type for TaskContinuationFunction*
2630
+ // to make this work with type diversity.
2631
+ auto authInfo =
2632
+ PointerAuthInfo::emit (IGF, schema, nullptr , PointerAuthEntity ());
2633
+ signedResumeFn = emitPointerAuthSign (IGF, signedResumeFn, authInfo);
2634
+ }
2635
+ return signedResumeFn;
2627
2636
}
2628
2637
2629
2638
You can’t perform that action at this time.
0 commit comments