diff options
Diffstat (limited to 'lld/lib/Driver/UniversalDriver.cpp')
-rw-r--r-- | lld/lib/Driver/UniversalDriver.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lld/lib/Driver/UniversalDriver.cpp b/lld/lib/Driver/UniversalDriver.cpp index 45bcbc838a3..68c9000e3de 100644 --- a/lld/lib/Driver/UniversalDriver.cpp +++ b/lld/lib/Driver/UniversalDriver.cpp @@ -86,6 +86,7 @@ static Flavor strToFlavor(StringRef str) { return llvm::StringSwitch<Flavor>(str) .Case("gnu", Flavor::gnu_ld) .Case("gnu2", Flavor::gnu_ld2) + .Case("ld.lld2", Flavor::gnu_ld2) .Case("link", Flavor::win_link) .Case("lld-link", Flavor::win_link) .Case("darwin", Flavor::darwin_ld) @@ -156,7 +157,9 @@ static Flavor getFlavor(llvm::MutableArrayRef<const char *> &args, } #endif - StringRef name = llvm::sys::path::stem(args[0]); + StringRef name = llvm::sys::path::filename(args[0]); + if (name.endswith_lower(".exe")) + name = llvm::sys::path::stem(name); return strToFlavor(parseProgramName(name)._flavor); } |