LLVM 的输出与应有的不同

问题描述 投票:0回答:1

我对使用 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 上完全删除它,然后安装它。没有任何效果。谁能帮我解决我的问题

c llvm
1个回答
0
投票

LLVM 将所有包含指针类型的指针类型替换为不透明指针类型。该指针类型表示为

ptr

可以在 LLVM 工具(如 opt)中使用 -opaque-pointers=0 或在 clang 中使用 -Xclang -no-opaque-pointers 来禁用不透明指针模式

欲了解更多信息,请查看: https://llvm.org/docs/OpaquePointers.html

© www.soinside.com 2019 - 2024. All rights reserved.