aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorVictor Hernandez <vhernandez@apple.com>2010-01-12 23:37:59 +0000
committerVictor Hernandez <vhernandez@apple.com>2010-01-12 23:37:59 +0000
commitfc4aefb129162a708ebd9a99cc166876613ef8d1 (patch)
treed862f81e35f4dda7dc84025701fcd1f7700825a8 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent58a6a8ec62b053ea79c56229514d907032218da4 (diff)
downloadllvm-fc4aefb129162a708ebd9a99cc166876613ef8d1.zip
llvm-fc4aefb129162a708ebd9a99cc166876613ef8d1.tar.gz
llvm-fc4aefb129162a708ebd9a99cc166876613ef8d1.tar.bz2
Make WriteConstants() more robust against stray values in ValueEnumerator's ValueList
llvm-svn: 93270
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
-rw-r--r--llvm/lib/Bitcode/Writer/BitcodeWriter.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
index 26c922a..fd1bade 100644
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
@@ -688,6 +688,11 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal,
Record.clear();
continue;
}
+
+ // Ignore all values in ValueList except for Constants.
+ if (V && (isa<Instruction>(V) || isa<Argument>(V)))
+ continue;
+
const Constant *C = cast<Constant>(V);
unsigned Code = -1U;
unsigned AbbrevToUse = 0;