[Clang] fix coroutine await suspend wrapper linkage types (#151224)
This commit is contained in:
parent
f2a476d79a
commit
e9259a47a8
@ -435,7 +435,7 @@ CodeGenFunction::generateAwaitSuspendWrapper(Twine const &CoroName,
|
||||
llvm::FunctionType *LTy = CGM.getTypes().GetFunctionType(FI);
|
||||
|
||||
llvm::Function *Fn = llvm::Function::Create(
|
||||
LTy, llvm::GlobalValue::PrivateLinkage, FuncName, &CGM.getModule());
|
||||
LTy, llvm::GlobalValue::InternalLinkage, FuncName, &CGM.getModule());
|
||||
|
||||
Fn->addParamAttr(0, llvm::Attribute::AttrKind::NonNull);
|
||||
Fn->addParamAttr(0, llvm::Attribute::AttrKind::NoUndef);
|
||||
|
@ -100,7 +100,7 @@ extern "C" void f0() {
|
||||
// CHECK: call i8 @llvm.coro.suspend(token %[[FINALSP_ID]], i1 true)
|
||||
|
||||
// Await suspend wrapper
|
||||
// CHECK: define{{.*}} @f0.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
|
||||
// CHECK: define internal {{.*}} @f0.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
|
||||
// CHECK: store ptr %[[AWAITABLE_ARG]], ptr %[[AWAITABLE_TMP:.+]],
|
||||
// CHECK: store ptr %[[FRAME_ARG]], ptr %[[FRAME_TMP:.+]],
|
||||
// CHECK: %[[AWAITABLE:.+]] = load ptr, ptr %[[AWAITABLE_TMP]]
|
||||
@ -162,7 +162,7 @@ extern "C" void f1(int) {
|
||||
// CHECK: call void @_ZN13suspend_maybe12await_resumeEv(ptr {{[^,]*}} %[[AWAITABLE]])
|
||||
|
||||
// Await suspend wrapper
|
||||
// CHECK: define {{.*}} i1 @f1.__await_suspend_wrapper__yield(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
|
||||
// CHECK: define internal {{.*}} i1 @f1.__await_suspend_wrapper__yield(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
|
||||
// CHECK: store ptr %[[AWAITABLE_ARG]], ptr %[[AWAITABLE_TMP:.+]],
|
||||
// CHECK: store ptr %[[FRAME_ARG]], ptr %[[FRAME_TMP:.+]],
|
||||
// CHECK: %[[AWAITABLE:.+]] = load ptr, ptr %[[AWAITABLE_TMP]]
|
||||
@ -379,7 +379,7 @@ extern "C" void TestTailcall() {
|
||||
// CHECK-NEXT: ]
|
||||
|
||||
// Await suspend wrapper
|
||||
// CHECK: define {{.*}} ptr @TestTailcall.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
|
||||
// CHECK: define internal {{.*}} ptr @TestTailcall.__await_suspend_wrapper__await(ptr {{[^,]*}} %[[AWAITABLE_ARG:.+]], ptr {{[^,]*}} %[[FRAME_ARG:.+]])
|
||||
// CHECK: store ptr %[[AWAITABLE_ARG]], ptr %[[AWAITABLE_TMP:.+]],
|
||||
// CHECK: store ptr %[[FRAME_ARG]], ptr %[[FRAME_TMP:.+]],
|
||||
// CHECK: %[[AWAITABLE:.+]] = load ptr, ptr %[[AWAITABLE_TMP]]
|
||||
|
Loading…
x
Reference in New Issue
Block a user