From c6e1b971617d627dbb82d9345f1d6ec334af913e Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Sun, 11 Oct 2015 18:19:01 +0000 Subject: [PATCH] ELF2: Remove ArgParser class and define parseArgs() function instead. ArgParser was a class with only one member function, so it didn't have to be a class. llvm-svn: 249988 --- lld/ELF/Driver.cpp | 2 +- lld/ELF/Driver.h | 16 ++++------------ lld/ELF/DriverUtils.cpp | 7 ++++--- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 8566deb08a93..271ebde00ff8 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -112,7 +112,7 @@ getString(opt::InputArgList &Args, unsigned Key, StringRef Default = "") { void LinkerDriver::main(ArrayRef ArgsArr) { initSymbols(); - opt::InputArgList Args = ArgParser(&Alloc).parse(ArgsArr); + opt::InputArgList Args = parseArgs(&Alloc, ArgsArr); createFiles(Args); switch (Config->ElfKind) { diff --git a/lld/ELF/Driver.h b/lld/ELF/Driver.h index 0bc84a586c76..6a7ca8f5dc75 100644 --- a/lld/ELF/Driver.h +++ b/lld/ELF/Driver.h @@ -14,7 +14,6 @@ #include "lld/Core/LLVM.h" #include "llvm/ADT/StringRef.h" #include "llvm/Option/ArgList.h" -#include "llvm/Support/StringSaver.h" namespace lld { namespace elf2 { @@ -24,17 +23,6 @@ extern class LinkerDriver *Driver; // Entry point of the ELF linker. void link(ArrayRef Args); -class ArgParser { -public: - ArgParser(llvm::BumpPtrAllocator *A); - - // Parses command line options. - llvm::opt::InputArgList parse(ArrayRef Args); - -private: - llvm::StringSaver Saver; -}; - class LinkerDriver { public: void main(ArrayRef Args); @@ -54,6 +42,10 @@ private: std::vector> OwningMBs; }; +// Parses command line options. +llvm::opt::InputArgList parseArgs(llvm::BumpPtrAllocator *A, + ArrayRef Args); + // Create enum with OPT_xxx values for each option in Options.td enum { OPT_INVALID = 0, diff --git a/lld/ELF/DriverUtils.cpp b/lld/ELF/DriverUtils.cpp index c15cb51fc5b7..d26e0cf009a2 100644 --- a/lld/ELF/DriverUtils.cpp +++ b/lld/ELF/DriverUtils.cpp @@ -19,6 +19,7 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" +#include "llvm/Support/StringSaver.h" using namespace llvm; @@ -49,10 +50,9 @@ public: ELFOptTable() : OptTable(infoTable, array_lengthof(infoTable)) {} }; -ArgParser::ArgParser(BumpPtrAllocator *A) : Saver(*A) {} - // Parses a given list of options. -opt::InputArgList ArgParser::parse(ArrayRef Argv) { +opt::InputArgList lld::elf2::parseArgs(llvm::BumpPtrAllocator *A, + ArrayRef Argv) { // Make InputArgList from string vectors. ELFOptTable Table; unsigned MissingIndex; @@ -60,6 +60,7 @@ opt::InputArgList ArgParser::parse(ArrayRef Argv) { // Expand response files. '@' is replaced by the file's contents. SmallVector Vec(Argv.data(), Argv.data() + Argv.size()); + StringSaver Saver(*A); llvm::cl::ExpandResponseFiles(Saver, llvm::cl::TokenizeGNUCommandLine, Vec); // Parse options and then do error checking.