summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Bitcode/Writer/ValueEnumerator.cpp')
-rw-r--r--llvm/lib/Bitcode/Writer/ValueEnumerator.cpp9
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
OpenPOWER on IntegriCloud