Verify sizes when trying to read a VBR

Also added an assert to ReadVBR64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234984 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Filipe Cabecinhas
2015-04-15 08:48:08 +00:00
parent dc374b5eb4
commit 4c0055402f
4 changed files with 8 additions and 0 deletions

View File

@ -395,6 +395,7 @@ public:
// Read a VBR that may have a value up to 64-bits in size. The chunk size of
// the VBR must still be <= 32 bits though.
uint64_t ReadVBR64(unsigned NumBits) {
assert(NumBits <= 64 && "VBR can only be up to 64 bits in size.");
uint32_t Piece = Read(NumBits);
if ((Piece & (1U << (NumBits-1))) == 0)
return uint64_t(Piece);