将无效指针传递给LLVM Irbuilder createCall

Pass void pointer to LLVM IRBuilder CreateCall

本文关键字:LLVM Irbuilder createCall 无效 指针      更新时间:2023-10-16

我正在创建一个llvm函数调用。我如何将void指针作为参数传递给该呼叫。我有" _testfunc"作为我的功能,需要将void指针作为参数传递。

llvm::Function *testFunc= m_mod->getFunction("_testFunc");
llvm::IRBuilder<> builder(instruction.getNextNode());
llvm::Value *arg = argument is void pointer
builder.CreateCall(testFunc, arg);

因此,此arg必须是一个无效的指针。

llvm ir中没有'void*'类型。而是使用i8*。

如果要指定" void*"的实际值,只需创建一个常数整数并投入到 i8*(对于实际做的事情来说很复杂,但这是唯一的方法)。

>

否则,如果您只想使用void*的类型,请使用i8*