diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-06 21:37:10 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-06 21:37:10 +0000 |
commit | 30910bf1c9842935c1c044578fe2d1d0ca9fa32a (patch) | |
tree | 04e40cdea9ad21c82e8632283333a2ba49761560 /include/llvm/Bitcode/BitstreamReader.h | |
parent | 86bc23d5c12cbf91be0c51f1265c7fedea4ff58c (diff) | |
download | external_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.h | 18 |
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. |