Author: Fangrui Song Date: 2022-11-23T13:22:44-08:00 New Revision: 8f43b84322cc255414ad996834dff09e90dc19af
URL: https://github.com/llvm/llvm-project/commit/8f43b84322cc255414ad996834dff09e90dc19af DIFF: https://github.com/llvm/llvm-project/commit/8f43b84322cc255414ad996834dff09e90dc19af.diff LOG: [ASTReader] Fix zlib header detection 0x78 after D137885 D137885 picked an incorrect magic so it would fail when zstd is not enabled. Added: Modified: clang/lib/Serialization/ASTReader.cpp Removed: ################################################################################ diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 367fbc06a8fe..8f7cb38c6a9f 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -1452,9 +1452,10 @@ bool ASTReader::ReadSLocEntry(int ID) { unsigned RecCode = MaybeRecCode.get(); if (RecCode == SM_SLOC_BUFFER_BLOB_COMPRESSED) { - // Inspect the first two bytes to diff erentiate zlib (\x1f\x8b) and zstd. + // Inspect the first byte to diff erentiate zlib (\x78) and zstd + // (little-endian 0xFD2FB528). const llvm::compression::Format F = - Blob.size() >= 2 && memcmp(Blob.data(), "\x1f\x8b", 2) == 0 + Blob.size() > 0 && Blob.data()[0] == 0x78 ? llvm::compression::Format::Zlib : llvm::compression::Format::Zstd; if (const char *Reason = llvm::compression::getReasonIfUnsupported(F)) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits