Fix bogus warning and simplify code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10924 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/Reader.cpp b/lib/Bytecode/Reader/Reader.cpp
index dca8890..977acbc 100644
--- a/lib/Bytecode/Reader/Reader.cpp
+++ b/lib/Bytecode/Reader/Reader.cpp
@@ -509,21 +509,15 @@
const unsigned char *End) {
while (Buf != End) {
- unsigned NumEntries;
+ unsigned NumEntries = read_vbr_uint(Buf, End);
unsigned Ty;
- NumEntries = read_vbr_uint(Buf, End);
- switch (NumEntries & 3) {
- case 0:
- case 1:
- case 2:
- Ty = NumEntries >> 2;
- NumEntries &= 3;
- break;
- case 3:
+ if ((NumEntries & 3) == 3) {
NumEntries >>= 2;
Ty = read_vbr_uint(Buf, End);
- break;
+ } else {
+ Ty = NumEntries >> 2;
+ NumEntries &= 3;
}
if (Ty >= CompactionTable.size())