mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-25 20:59:51 +00:00
System/Path: Add isObjectFile().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114032 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
765c4d9477
commit
8a26f81889
@ -342,6 +342,17 @@ namespace sys {
|
||||
/// @brief Determine if the path references a dynamic library.
|
||||
bool isDynamicLibrary() const;
|
||||
|
||||
/// This function determines if the path name in the object references a
|
||||
/// native object file by looking at it's magic number. The term object
|
||||
/// file is defined as "an organized collection of separate, named
|
||||
/// sequences of binary data." This covers the obvious file formats such as
|
||||
/// COFF and ELF, but it also includes llvm ir bitcode, archives,
|
||||
/// libraries, etc...
|
||||
/// @returns true if the file starts with the magic number for an object
|
||||
/// file.
|
||||
/// @brief Determine if the path references an object file.
|
||||
bool isObjectFile() const;
|
||||
|
||||
/// This function determines if the path name references an existing file
|
||||
/// or directory in the file system.
|
||||
/// @returns true if the pathname references an existing file or
|
||||
|
@ -156,6 +156,20 @@ Path::isDynamicLibrary() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
Path::isObjectFile() const {
|
||||
std::string Magic;
|
||||
if (getMagicNumber(Magic, 64))
|
||||
if (IdentifyFileType(Magic.c_str(),
|
||||
static_cast<unsigned>(Magic.length()))
|
||||
!= Unknown_FileType) {
|
||||
// Everything in LLVMFileType is currently an object file.
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Path
|
||||
Path::FindLibrary(std::string& name) {
|
||||
std::vector<sys::Path> LibPaths;
|
||||
|
Loading…
Reference in New Issue
Block a user