Rewrite assert to avoid warning when the record element type is byte-sized.
authorJordan Rose <jordan_rose@apple.com>
Thu, 9 May 2013 21:07:43 +0000 (21:07 +0000)
committerJordan Rose <jordan_rose@apple.com>
Thu, 9 May 2013 21:07:43 +0000 (21:07 +0000)
BitstreamWriter asserts that when blob data is written from the record
element vector, each element fits in a byte. However, if the record
elements are specified as a SmallVector of 'char', this causes a warning
from -Wtautological-constant-out-of-range-compare. Fix this by using
llvm::isUInt<8> instead of a plain comparison against 256.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181545 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Bitcode/BitstreamWriter.h

index a837211875f590e80e04927d3faffe124070fcf2..f40a0d1d259fbe47698a13fc1a759ca1f0cd3be9 100644 (file)
@@ -381,7 +381,8 @@ private:
           BlobData = 0;
         } else {
           for (unsigned e = Vals.size(); RecordIdx != e; ++RecordIdx) {
           BlobData = 0;
         } else {
           for (unsigned e = Vals.size(); RecordIdx != e; ++RecordIdx) {
-            assert(Vals[RecordIdx] < 256 && "Value too large to emit as blob");
+            assert(isUInt<8>(Vals[RecordIdx]) &&
+                   "Value too large to emit as blob");
             WriteByte((unsigned char)Vals[RecordIdx]);
           }
         }
             WriteByte((unsigned char)Vals[RecordIdx]);
           }
         }