mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 00:32:55 +00:00
Move IsArchive and IsBytecode here from gccld. Refactor into CheckMagic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9901 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f33d00f0d8
commit
a2302ffe78
@ -20,6 +20,35 @@
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
|
||||
/// CheckMagic - Returns true IFF the file named FN begins with Magic. FN must
|
||||
/// name a readable file.
|
||||
///
|
||||
bool CheckMagic (const std::string &FN, const std::string &Magic) {
|
||||
char buf[1 + Magic.size ()];
|
||||
std::ifstream f (FN.c_str ());
|
||||
f.read (buf, Magic.size ());
|
||||
buf[Magic.size ()] = '\0';
|
||||
return Magic == buf;
|
||||
}
|
||||
|
||||
/// IsArchive - Returns true IFF the file named FN appears to be a "ar" library
|
||||
/// archive. The file named FN must exist.
|
||||
///
|
||||
bool IsArchive(const std::string &FN) {
|
||||
// Inspect the beginning of the file to see if it contains the "ar"
|
||||
// library archive format magic string.
|
||||
return CheckMagic (FN, "!<arch>\012");
|
||||
}
|
||||
|
||||
/// IsBytecode - Returns true IFF the file named FN appears to be an LLVM
|
||||
/// bytecode file. The file named FN must exist.
|
||||
///
|
||||
bool IsBytecode(const std::string &FN) {
|
||||
// Inspect the beginning of the file to see if it contains the LLVM
|
||||
// bytecode format magic string.
|
||||
return CheckMagic (FN, "llvm");
|
||||
}
|
||||
|
||||
/// FileOpenable - Returns true IFF Filename names an existing regular
|
||||
/// file which we can successfully open.
|
||||
///
|
||||
|
Loading…
x
Reference in New Issue
Block a user