summaryrefslogtreecommitdiff
path: root/include/llvm/Bitcode
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-06 22:43:46 +0000
committerChris Lattner <sabre@nondot.org>2009-04-06 22:43:46 +0000
commit123f3848794b333063b478d38ff12e1bd3969125 (patch)
tree46107e172157ba100bd17383708c5b8a0ae830c8 /include/llvm/Bitcode
parent298a82dd0d042479e419c4fa2219c1a08c1becc4 (diff)
downloadllvm-123f3848794b333063b478d38ff12e1bd3969125.tar.gz
llvm-123f3848794b333063b478d38ff12e1bd3969125.tar.bz2
llvm-123f3848794b333063b478d38ff12e1bd3969125.tar.xz
allow clients to look up abbrev id's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68471 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode')
-rw-r--r--include/llvm/Bitcode/BitstreamReader.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h
index 281f8a412b..fe51ade4cb 100644
--- a/include/llvm/Bitcode/BitstreamReader.h
+++ b/include/llvm/Bitcode/BitstreamReader.h
@@ -363,6 +363,14 @@ private:
}
}
public:
+
+ /// getAbbrev - Return the abbreviation for the specified AbbrevId.
+ const BitCodeAbbrev *getAbbrev(unsigned AbbrevID) {
+ unsigned AbbrevNo = AbbrevID-bitc::FIRST_APPLICATION_ABBREV;
+ assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!");
+ return CurAbbrevs[AbbrevNo];
+ }
+
unsigned ReadRecord(unsigned AbbrevID, SmallVectorImpl<uint64_t> &Vals) {
if (AbbrevID == bitc::UNABBREV_RECORD) {
unsigned Code = ReadVBR(6);
@@ -372,9 +380,7 @@ public:
return Code;
}
- unsigned AbbrevNo = AbbrevID-bitc::FIRST_APPLICATION_ABBREV;
- assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!");
- BitCodeAbbrev *Abbv = CurAbbrevs[AbbrevNo];
+ const BitCodeAbbrev *Abbv = getAbbrev(AbbrevID);
for (unsigned i = 0, e = Abbv->getNumOperandInfos(); i != e; ++i) {
const BitCodeAbbrevOp &Op = Abbv->getOperandInfo(i);