diff --git a/llvm/include/llvm/Support/PathV1.h b/llvm/include/llvm/Support/PathV1.h index 1fec1e56c834e40e5efeecf27fe72e7dba54676e..86fdb0c0accb7c6488ce95af6f0ba4f76c46c8d3 100644 --- a/llvm/include/llvm/Support/PathV1.h +++ b/llvm/include/llvm/Support/PathV1.h @@ -329,7 +329,8 @@ namespace sys { /// cases (file not found, file not accessible, etc.) it returns false. /// @returns true if the magic number of the file matches \p magic. /// @brief Determine if file has a specific magic number - bool hasMagicNumber(StringRef magic) const; + LLVM_ATTRIBUTE_DEPRECATED(bool hasMagicNumber(StringRef magic) const, + LLVM_PATH_DEPRECATED_MSG(fs::has_magic)); /// This function retrieves the first \p len bytes of the file associated /// with \p this. These bytes are returned as the "magic number" in the diff --git a/llvm/lib/Support/Path.cpp b/llvm/lib/Support/Path.cpp index c3353fd0e2b212fd0825758a9b41b0bebcb7db08..3e0ee8dd86d07abd9d3ec6171d5e47b3ba9f8d4b 100644 --- a/llvm/lib/Support/Path.cpp +++ b/llvm/lib/Support/Path.cpp @@ -140,7 +140,11 @@ sys::IdentifyFileType(const char *magic, unsigned length) { bool Path::isArchive() const { - return hasMagicNumber("!\012"); + std::string Magic; + if (getMagicNumber(Magic, 8)) + if (IdentifyFileType(Magic.c_str(), Magic.length()) == Archive_FileType) + return true; + return false; } bool