我意识到LLVM中的常量和带有c/c++常量修饰符的变量是不同的。
有没有办法区分LLVM中带有常量修饰符的C/C++变量和没有常量修饰符的C/C++变量?(包括全局变量在内的所有变量)
发布于 2020-03-04 04:16:41
LLVM IR并不打算表示源类型系统,它是一个中间表示,包含对编译有用的类型信息,它将类似于源类型,但不需要捕获所有方面。如果需要源类型系统,则必须查看调试信息,这些信息不需要存在,但如果存在,则至少要包含所需的数据。
你可以开始关注DIType了。需要注意的是,这段代码并没有很好的文档记录。
不过,全局变量有一个方便的方法,即isConstant()。
https://stackoverflow.com/questions/60513972
复制相似问题