mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
Expose CRC-32 implementation from zlib
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188380 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -50,6 +50,8 @@ Status uncompress(StringRef InputBuffer,
|
|||||||
OwningPtr<MemoryBuffer> &UncompressedBuffer,
|
OwningPtr<MemoryBuffer> &UncompressedBuffer,
|
||||||
size_t UncompressedSize);
|
size_t UncompressedSize);
|
||||||
|
|
||||||
|
uint32_t crc32(StringRef Buffer);
|
||||||
|
|
||||||
} // End of namespace zlib
|
} // End of namespace zlib
|
||||||
|
|
||||||
} // End of namespace llvm
|
} // End of namespace llvm
|
||||||
|
@ -81,6 +81,10 @@ zlib::Status zlib::uncompress(StringRef InputBuffer,
|
|||||||
return Res;
|
return Res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t zlib::crc32(StringRef Buffer) {
|
||||||
|
return ::crc32(0, (const Bytef *)Buffer.data(), Buffer.size());
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
bool zlib::isAvailable() { return false; }
|
bool zlib::isAvailable() { return false; }
|
||||||
zlib::Status zlib::compress(StringRef InputBuffer,
|
zlib::Status zlib::compress(StringRef InputBuffer,
|
||||||
@ -93,5 +97,8 @@ zlib::Status zlib::uncompress(StringRef InputBuffer,
|
|||||||
size_t UncompressedSize) {
|
size_t UncompressedSize) {
|
||||||
return zlib::StatusUnsupported;
|
return zlib::StatusUnsupported;
|
||||||
}
|
}
|
||||||
|
uint32_t zlib::crc32(StringRef Buffer) {
|
||||||
|
llvm_unreachable("zlib::crc32 is unavailable");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -63,6 +63,12 @@ TEST(CompressionTest, Zlib) {
|
|||||||
TestZlibCompression(BinaryDataStr, zlib::DefaultCompression);
|
TestZlibCompression(BinaryDataStr, zlib::DefaultCompression);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(CompressionTest, ZlibCRC32) {
|
||||||
|
EXPECT_EQ(
|
||||||
|
0x414FA339U,
|
||||||
|
zlib::crc32(StringRef("The quick brown fox jumps over the lazy dog")));
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user