静态/动态链接器是否会导致LLVM全局对象别名?

时间:2015-10-20 14:25:41

标签: linker llvm-ir

我正在研究使用LLVM的C ++ API分析LLVM IR的代码,我试图弄清楚两个或更多llvm::GlobalObject值何时可能最终命名同一块内存。我需要永远不会得出假阴性结论。

AFAIK,llvm::Module::aliases()枚举module's explicit aliases,这是一个开始。我担心的是,以后可能会引入额外的别名:

考虑这个例子:

@A = common global i32 0, align 4
@B = external global i32
@C = external dllimport global i32, align 4
...

我担心静态链接器可以自由地将@A@B绑定到同一个存储区。和/或动态链接器可能会将@A@C绑定到同一个存储区。

有谁知道这些是否是现实的可能性?我是否遗漏了编译后步骤可能导致两个GlobalObject's别名的任何其他方式?

0 个答案:

没有答案