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;
}
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,
size_t UncompressedSize) {
return zlib::StatusUnsupported;
}
+uint32_t zlib::crc32(StringRef Buffer) {
+ llvm_unreachable("zlib::crc32 is unavailable");
+}
#endif