mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 02:33:06 +01:00
Bitcode: Fix short read implementation.
We need to zero extend the byte in order to correctly shift it into a 64-bit value. llvm-svn: 285785
This commit is contained in:
parent
932954ed4f
commit
a01989574b
@ -232,7 +232,7 @@ public:
|
||||
BytesRead = Buf.size() - NextChar;
|
||||
CurWord = 0;
|
||||
for (unsigned B = 0; B != BytesRead; ++B)
|
||||
CurWord |= NextCharPtr[B] << (B * 8);
|
||||
CurWord |= uint64_t(NextCharPtr[B]) << (B * 8);
|
||||
}
|
||||
NextChar += BytesRead;
|
||||
BitsInCurWord = BytesRead * 8;
|
||||
|
@ -158,4 +158,13 @@ TEST(BitstreamReaderTest, readRecordWithBlobWhileStreaming) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST(BitstreamReaderTest, shortRead) {
|
||||
uint8_t Bytes[] = {8, 7, 6, 5, 4, 3, 2, 1};
|
||||
for (unsigned I = 1; I != 8; ++I) {
|
||||
BitstreamReader Reader(ArrayRef<uint8_t>(Bytes, I));
|
||||
SimpleBitstreamCursor Cursor(Reader);
|
||||
EXPECT_EQ(8ull, Cursor.Read(8));
|
||||
}
|
||||
}
|
||||
|
||||
} // end anonymous namespace
|
||||
|
Loading…
Reference in New Issue
Block a user