在 LLVM 中我们有LLVMContext
,这是存储单位,我们有llvm::Module
,这是构建新符号(函数和类型)的地方。
我的问题是;用于编译单元的正确 llvm 抽象是什么?是个Module
?或者这实际上意味着更大的范围,即:共享库目标
在我看来,编译单元必须满足“全有或全无”的结果;要么它编译其所有内容而没有错误,要么存在错误并且需要在 CU 中的任何符号可用之前修复并重新构建。在我看来,这就是编译单元应该代表的定义
如果模块是 CU 的正确抽象,我如何在其他(正确编译)中呈现符号Module
对象即将构建的新模块,以便它能够找到这些对象?我需要添加声明还是有其他加快方法?
指向相关行的点clang
会有很大帮助
模块是编译单元的正确抽象。您可以将模块链接在一起以从那里进行整个程序分析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)