diff options
Diffstat (limited to 'Common/Args.cpp')
| -rw-r--r-- | Common/Args.cpp | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/Common/Args.cpp b/Common/Args.cpp index ff77bfcc3b764..3f0671d72a666 100644 --- a/Common/Args.cpp +++ b/Common/Args.cpp @@ -13,6 +13,7 @@  #include "llvm/ADT/StringExtras.h"  #include "llvm/ADT/StringRef.h"  #include "llvm/Option/ArgList.h" +#include "llvm/Support/Path.h"  using namespace llvm;  using namespace lld; @@ -40,7 +41,7 @@ std::vector<StringRef> lld::args::getStrings(opt::InputArgList &Args, int Id) {  uint64_t lld::args::getZOptionValue(opt::InputArgList &Args, int Id,                                      StringRef Key, uint64_t Default) { -  for (auto *Arg : Args.filtered(Id)) { +  for (auto *Arg : Args.filtered_reverse(Id)) {      std::pair<StringRef, StringRef> KV = StringRef(Arg->getValue()).split('=');      if (KV.first == Key) {        uint64_t Result = Default; @@ -64,3 +65,9 @@ std::vector<StringRef> lld::args::getLines(MemoryBufferRef MB) {    }    return Ret;  } + +StringRef lld::args::getFilenameWithoutExe(StringRef Path) { +  if (Path.endswith_lower(".exe")) +    return sys::path::stem(Path); +  return sys::path::filename(Path); +} | 
