我对使用 LLVM C API 还很陌生,以前从未遇到过这个问题。从示例中,我在网上看到,当他们使用
LLVMTypeRef
然后使用 LLVMIntTypeInContext
创建 LLVMPointerType
时,他们得到一个干净的 i16*
类型,但我得到 ptr
这是参考代码
LLVMTypeRef type = LLVMIntTypeInContext(context,16)
type = LLVMPointerType(type,0)
之后我只打印模块。 我使用的是配备 M1 芯片和 LLVM 版本 16.0.6 的 MacO
有些人建议我安装较新版本的 LLVM,因为在此之前我使用的是版本 15,没有任何变化。然后我尝试完全重新安装,但没有任何改变。我还尝试从我的 Mac 上完全删除它,然后安装它。没有任何效果。谁能帮我解决我的问题
LLVM 将所有包含指针类型的指针类型替换为不透明指针类型。该指针类型表示为
ptr
可以在 LLVM 工具(如 opt)中使用 -opaque-pointers=0 或在 clang 中使用 -Xclang -no-opaque-pointers 来禁用不透明指针模式
欲了解更多信息,请查看: https://llvm.org/docs/OpaquePointers.html