From 099b636562a83dc9acc6bf36ca32d710ac6d62c9 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 20 Jan 2013 02:12:39 +0000 Subject: [PATCH] add an option to not auto-process abbreviations in advance() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172946 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Bitcode/BitstreamReader.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h index 3e8d880da44..3e299e9e4c5 100644 --- a/include/llvm/Bitcode/BitstreamReader.h +++ b/include/llvm/Bitcode/BitstreamReader.h @@ -159,7 +159,6 @@ struct BitstreamEntry { } }; - /// BitstreamCursor - This represents a position within a bitcode file. There /// may be multiple independent cursors reading within one bitstream, each /// maintaining their own local state. @@ -271,7 +270,14 @@ public: /// Flags that modify the behavior of advance(). enum { - AF_DontPopBlockAtEnd = 1 + /// AF_DontPopBlockAtEnd - If this flag is used, the advance() method does + /// not automatically pop the block scope when the end of a block is + /// reached. + AF_DontPopBlockAtEnd = 1, + + /// AF_DontAutoprocessAbbrevs - If this flag is used, abbrev entries are + /// returned just like normal records. + AF_DontAutoprocessAbbrevs = 2 }; /// advance - Advance the current bitstream, returning the next entry in the @@ -289,7 +295,8 @@ public: if (Code == bitc::ENTER_SUBBLOCK) return BitstreamEntry::getSubBlock(ReadSubBlockID()); - if (Code == bitc::DEFINE_ABBREV) { + if (Code == bitc::DEFINE_ABBREV && + !(Flags & AF_DontAutoprocessAbbrevs)) { // We read and accumulate abbrev's, the client can't do anything with // them anyway. ReadAbbrevRecord(); @@ -483,7 +490,7 @@ private: BlockScope.pop_back(); } - //===--------------------------------------------------------------------===// + //===--------------------------------------------------------------------===// // Record Processing //===--------------------------------------------------------------------===// -- 2.34.1