Fix an invalid check for duplicate option categories.
[oota-llvm.git] / lib / Support / Compression.cpp
index 36afa8c06b14287b724af4d540c20b1c132374e9..b5ddb7002cade054282a19d5cf9905c09fcd59f6 100644 (file)
@@ -60,7 +60,7 @@ zlib::Status zlib::compress(StringRef InputBuffer,
     CompressedBuffer.reset(MemoryBuffer::getMemBufferCopy(
         StringRef(TmpBuffer.get(), CompressedSize)));
     // Tell MSan that memory initialized by zlib is valid.
-    __msan_unpoison(CompressedBuffer.data(), CompressedBuffer.size());
+    __msan_unpoison(CompressedBuffer->getBufferStart(), CompressedSize);
   }
   return Res;
 }
@@ -76,11 +76,15 @@ zlib::Status zlib::uncompress(StringRef InputBuffer,
     UncompressedBuffer.reset(MemoryBuffer::getMemBufferCopy(
         StringRef(TmpBuffer.get(), UncompressedSize)));
     // Tell MSan that memory initialized by zlib is valid.
-    __msan_unpoison(UncompressedBuffer.data(), UncompressedBuffer.size());
+    __msan_unpoison(UncompressedBuffer->getBufferStart(), UncompressedSize);
   }
   return Res;
 }
 
+uint32_t zlib::crc32(StringRef Buffer) {
+  return ::crc32(0, (const Bytef *)Buffer.data(), Buffer.size());
+}
+
 #else
 bool zlib::isAvailable() { return false; }
 zlib::Status zlib::compress(StringRef InputBuffer,
@@ -93,5 +97,8 @@ zlib::Status zlib::uncompress(StringRef InputBuffer,
                               size_t UncompressedSize) {
   return zlib::StatusUnsupported;
 }
+uint32_t zlib::crc32(StringRef Buffer) {
+  llvm_unreachable("zlib::crc32 is unavailable");
+}
 #endif