From a2d0ad4fe26df1e32610ccd99d084a98daeb5c67 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 29 Apr 2007 19:49:58 +0000 Subject: [PATCH] compute this value correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36575 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Bitcode/BitstreamReader.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h index f41c4f0ec3b..c6394b6c99a 100644 --- a/include/llvm/Bitcode/BitstreamReader.h +++ b/include/llvm/Bitcode/BitstreamReader.h @@ -48,9 +48,11 @@ class BitstreamReader { /// BlockScope - This tracks the codesize of parent blocks. SmallVector BlockScope; + /// FirstChar - This remembers the first byte of the stream. + const unsigned char *FirstChar; public: BitstreamReader(const unsigned char *Start, const unsigned char *End) - : NextChar(Start), LastChar(End) { + : NextChar(Start), LastChar(End), FirstChar(Start) { assert(((End-Start) & 3) == 0 &&"Bitcode stream not a multiple of 4 bytes"); CurWord = 0; BitsInCurWord = 0; @@ -74,7 +76,7 @@ public: /// GetCurrentBitNo - Return the bit # of the bit we are reading. uint64_t GetCurrentBitNo() const { - return CurWord * 32ULL + (32-CurCodeSize); + return (NextChar-FirstChar)*8 + (32-BitsInCurWord); }