首页 > 解决方案 > LLVM 检查 PointerType 是否为 Const 指针

问题描述

我需要知道,如果函数参数的给定 LLVM 类型实际上是 const 指针。

有没有办法在 LLVM 中检查这个?

标签: c++llvmllvm-irllvm-c++-api

解决方案


你想要的可能是LLVM 的函数函数参数属性。例如,这里检查被调用函数的返回值是否可以为空:

foo = called->hasAttribute(AttributeList::ReturnIndex, llvm::Attribute::NonNull)

这将检查特定值是否是 const 参数

isa<Argument>(value) && cast<Argument>(value)->onlyReadsMemory()

好吧,假设我知道你所说的 const 指针是什么意思。恒心有很多不同的含义……


推荐阅读