将无效指针传递给LLVM Irbuilder createCall
Pass void pointer to LLVM IRBuilder CreateCall
我正在创建一个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*
。
相关文章:
- 如何将 I->getType() 作为参数传递给 llvm 中的 CreateCall?
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 是否可以将llvm::FunctionType转换为C/C++原始函数指针
- llvm构建器向基本块添加终止符
- 正在LLVM中检测整数比较条件
- 如何在LLVM中dyn_cast以识别StoreInst?
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 编译 llvm 3.1 时,为什么会出现错误:在">"标记之前预期主表达式
- 如何删除 LLVM 中的不规则分支?
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 编译 llvm 插件时出现问题:llvm/Config/llvm-config.h:没有这样的文件或目录
- 如何检查函数是否在LLVM Instrumentation pass的ModulePass的系统头文件中定义?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- LLVM 选择找不到函数传递
- LLVM 编译:目标的配方 '../lib/IR/Release+Asserts/Intrinsics.gen.tmp' failed
- 如何使用 IRBuilder 更新 LLVM IR 中的全局变量值?
- LLVM IRBuilder If-Then Codegen
- 将无效指针传递给LLVM Irbuilder createCall
- 创建sleep();调用使用llvm IRbuilder