diff options
Diffstat (limited to 'llvm/lib/Bitcode/Writer/ValueEnumerator.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Writer/ValueEnumerator.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp index fa1c8b3c57d..2ac53fea8a9 100644 --- a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -80,12 +80,15 @@ static OrderMap orderModule(const Module *M) { // implicitly. for (const GlobalVariable &G : M->globals()) if (G.hasInitializer()) - orderValue(G.getInitializer(), OM); + if (!isa<GlobalValue>(G.getInitializer())) + orderValue(G.getInitializer(), OM); for (const GlobalAlias &A : M->aliases()) - orderValue(A.getAliasee(), OM); + if (!isa<GlobalValue>(A.getAliasee())) + orderValue(A.getAliasee(), OM); for (const Function &F : *M) if (F.hasPrefixData()) - orderValue(F.getPrefixData(), OM); + if (!isa<GlobalValue>(F.getPrefixData())) + orderValue(F.getPrefixData(), OM); OM.LastGlobalConstantID = OM.size(); // Initializers of GlobalValues are processed in |