英文:
LLVM outputs differently than it should
问题
我对使用LLVM C API相当新,并且以前从未遇到过这个问题。从在线示例中,当它们使用LLVMIntTypeInContext
创建LLVMTypeRef
,然后使用LLVMPointerType
时,它们得到一个干净的i16*
类型,但我得到ptr
。
以下是参考代码:
LLVMTypeRef type = LLVMIntTypeInContext(context,16);
type = LLVMPointerType(type,0);
然后我只是打印模块。
我使用的是搭载M1芯片的MacOS和LLVM版本16.0.6。
有些人建议我安装更新版本的LLVM,因为之前我使用的是版本15,但没有任何改变。然后我尝试完全重新安装它,但没有改变。我还尝试彻底从我的Mac中删除它,然后重新安装它。什么都没用。有人可以帮我解决这个问题吗?
英文:
I am pretty new to using LLVM C API, and never have encountered this issue before. From examples, I seen online when they create a LLVMTypeRef
using LLVMIntTypeInContext
and then LLVMPointerType
, they get a clean i16*
type, but I get ptr
here is the reference code
LLVMTypeRef type = LLVMIntTypeInContext(context,16)
type = LLVMPointerType(type,0)
afterwards I just print the module.
I am using MacOs with M1 chip and LLVM version 16.0.6
Some people recommended me install the newer version of LLVM because before that I used version 15, nothing has changed. Then I tried to completely reinstall which changed nothing. I also tried to completely deleting it from my Mac and then install it. Nothing has worked. Can anyone please help me with my issue
答案1
得分: 1
LLVM将包含指向类型的所有指针类型替换为不透明指针类型。该指针类型表示为ptr
可以使用LLVM工具中的-opaque-pointers=0或clang中的-Xclang -no-opaque-pointers来禁用不透明指针模式。
有关更多信息,请查看:
https://llvm.org/docs/OpaquePointers.html
英文:
LLVM replaced all pointer types containing pointee type with an opaque pointer type. That pointer type is represented as ptr
> The opaque pointer mode can be disabled using -opaque-pointers=0 in LLVM tools like opt, or -Xclang -no-opaque-pointers in clang
For more info, check:
https://llvm.org/docs/OpaquePointers.html
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论