aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Bitcode/BitstreamReader.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-06 21:37:10 +0000
committerChris Lattner <sabre@nondot.org>2009-04-06 21:37:10 +0000
commit30910bf1c9842935c1c044578fe2d1d0ca9fa32a (patch)
tree04e40cdea9ad21c82e8632283333a2ba49761560 /include/llvm/Bitcode/BitstreamReader.h
parent86bc23d5c12cbf91be0c51f1265c7fedea4ff58c (diff)
downloadexternal_llvm-30910bf1c9842935c1c044578fe2d1d0ca9fa32a.zip
external_llvm-30910bf1c9842935c1c044578fe2d1d0ca9fa32a.tar.gz
external_llvm-30910bf1c9842935c1c044578fe2d1d0ca9fa32a.tar.bz2
split ReadAbbreviatedLiteral out of ReadAbbreviatedField.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68463 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode/BitstreamReader.h')
-rw-r--r--include/llvm/Bitcode/BitstreamReader.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h
index 182ef39..da78731 100644
--- a/include/llvm/Bitcode/BitstreamReader.h
+++ b/include/llvm/Bitcode/BitstreamReader.h
@@ -337,13 +337,17 @@ private:
//===--------------------------------------------------------------------===//
private:
+ void ReadAbbreviatedLiteral(const BitCodeAbbrevOp &Op,
+ SmallVectorImpl<uint64_t> &Vals) {
+ assert(Op.isLiteral() && "Not a literal");
+ // If the abbrev specifies the literal value to use, use it.
+ Vals.push_back(Op.getLiteralValue());
+ }
+
void ReadAbbreviatedField(const BitCodeAbbrevOp &Op,
SmallVectorImpl<uint64_t> &Vals) {
- if (Op.isLiteral()) {
- // If the abbrev specifies the literal value to use, use it.
- Vals.push_back(Op.getLiteralValue());
- return;
- }
+ assert(!Op.isLiteral() && "Use ReadAbbreviatedLiteral for literals!");
+
// Decode the value as we are commanded.
switch (Op.getEncoding()) {
default: assert(0 && "Unknown encoding!");
@@ -374,7 +378,9 @@ public:
for (unsigned i = 0, e = Abbv->getNumOperandInfos(); i != e; ++i) {
const BitCodeAbbrevOp &Op = Abbv->getOperandInfo(i);
- if (Op.isLiteral() || Op.getEncoding() != BitCodeAbbrevOp::Array) {
+ if (Op.isLiteral()) {
+ ReadAbbreviatedLiteral(Op, Vals);
+ } else if (Op.getEncoding() != BitCodeAbbrevOp::Array) {
ReadAbbreviatedField(Op, Vals);
} else {
// Array case. Read the number of elements as a vbr6.