Skip to content

Commit 15015c0

Browse files
committed
Handle windows style async function pointers
1 parent 2c09f54 commit 15015c0

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/IRGen/GenCall.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5056,6 +5056,12 @@ StringRef FunctionPointer::getName(IRGenModule &IGM) const {
50565056
return getRawPointer()->getName();
50575057
case BasicKind::AsyncFunctionPointer: {
50585058
auto *asyncFnPtr = getDirectPointer();
5059+
// Handle windows style async function pointers.
5060+
if (auto *ce = dyn_cast<llvm::ConstantExpr>(asyncFnPtr)) {
5061+
if (ce->getOpcode() == llvm::Instruction::IntToPtr) {
5062+
asyncFnPtr = cast<llvm::Constant>(asyncFnPtr->getOperand(0));
5063+
}
5064+
}
50595065
asyncFnPtr = cast<llvm::Constant>(asyncFnPtr->stripPointerCasts());
50605066
return IGM
50615067
.getSILFunctionForAsyncFunctionPointer(asyncFnPtr)->getName();

0 commit comments

Comments
 (0)