[Driver] Follow-up to r211598, r211663. Do not build a dynamic linker
path using sub-strings concatenation. Return the whole string explicitly.
llvm-svn: 211665
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 4ccb863..48528d9 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -6929,8 +6929,8 @@
CmdArgs.push_back("-ldl");
}
-static Twine getLinuxDynamicLinker(const ArgList &Args,
- const toolchains::Linux &ToolChain) {
+static StringRef getLinuxDynamicLinker(const ArgList &Args,
+ const toolchains::Linux &ToolChain) {
if (ToolChain.getTriple().getEnvironment() == llvm::Triple::Android) {
if (ToolChain.getTriple().isArch64Bit())
return "/system/bin/linker64";
@@ -6964,11 +6964,11 @@
return "/lib/ld.so.1";
} else if (ToolChain.getArch() == llvm::Triple::mips64 ||
ToolChain.getArch() == llvm::Triple::mips64el) {
- Twine LinkerFile =
- mips::isNaN2008(Args) ? "ld-linux-mipsn8.so.1" : "ld.so.1";
if (mips::hasMipsAbiArg(Args, "n32"))
- return "/lib32/" + LinkerFile;
- return "/lib64/" + LinkerFile;
+ return mips::isNaN2008(Args) ? "/lib32/ld-linux-mipsn8.so.1"
+ : "/lib32/ld.so.1";
+ return mips::isNaN2008(Args) ? "/lib64/ld-linux-mipsn8.so.1"
+ : "/lib64/ld.so.1";
} else if (ToolChain.getArch() == llvm::Triple::ppc)
return "/lib/ld.so.1";
else if (ToolChain.getArch() == llvm::Triple::ppc64 ||