#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/Object/Archive.h"
#include "llvm/Object/ELFObjectFile.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Option/Option.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/WithColor.h"
#include "llvm/TargetParser/Triple.h"
usingnamespacellvm;
usingnamespacellvm::object;
namespace {
enum ID { … };
#define PREFIX …
#include "Opts.inc"
#undef PREFIX
usingnamespacellvm::opt;
static constexpr opt::OptTable::Info InfoTable[] = …;
class TLICheckerOptTable : public opt::GenericOptTable { … };
}
enum class ReportKind { … };
template <typename T>
static T unwrapIgnoreError(Expected<T> E, T Default = T()) { … }
static void fail(const Twine &Message) { … }
static void reportArchiveChildIssue(const object::Archive::Child &C, int Index,
StringRef ArchiveFilename) { … }
static std::string getPrintableName(StringRef Name) { … }
struct TLINameList : std::vector<std::pair<StringRef, bool>> { … };
static TLINameList TLINames;
void TLINameList::initialize(StringRef TargetTriple) { … }
void TLINameList::dump() { … }
class SDKNameMap : public StringMap<bool> { … };
static SDKNameMap SDKNames;
void SDKNameMap::maybeInsertSymbol(const SymbolRef &S, const ObjectFile &O) { … }
void SDKNameMap::populateFromObject(ObjectFile *O) { … }
void SDKNameMap::populateFromArchive(Archive *A) { … }
void SDKNameMap::populateFromFile(StringRef LibDir, StringRef LibName) { … }
int main(int argc, char *argv[]) { … }