Rename HostInfo::getToolChain to HostInfo::CreateToolChain, and don't recreate
the default tool chain when binding the default architecture.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81279 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index c817cde..f58c882 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -207,7 +207,7 @@
   Host = GetHostInfo(HostTriple);
 
   // The compilation takes ownership of Args.
-  Compilation *C = new Compilation(*this, *Host->getToolChain(*Args), Args);
+  Compilation *C = new Compilation(*this, *Host->CreateToolChain(*Args), Args);
 
   // FIXME: This behavior shouldn't be here.
   if (CCCPrintOptions) {
@@ -1017,19 +1017,14 @@
   }
 
   if (const BindArchAction *BAA = dyn_cast<BindArchAction>(A)) {
-    const char *ArchName = BAA->getArchName();
+    const ToolChain *TC = &C.getDefaultToolChain();
+
     std::string Arch;
-    if (!ArchName) {
-      Arch = C.getDefaultToolChain().getArchName();
-      ArchName = Arch.c_str();
-    }
-    BuildJobsForAction(C,
-                       *BAA->begin(),
-                       Host->getToolChain(C.getArgs(), ArchName),
-                       CanAcceptPipe,
-                       AtTopLevel,
-                       LinkingOutput,
-                       Result);
+    if (BAA->getArchName())
+      TC = Host->CreateToolChain(C.getArgs(), BAA->getArchName());
+
+    BuildJobsForAction(C, *BAA->begin(), TC, CanAcceptPipe, AtTopLevel,
+                       LinkingOutput, Result);
     return;
   }