MCLinker upstream commit 7720f766. BUG=6886348.

Change-Id: Ifc03fbe870c8993893e92c2e55a9c3f6e3877849
diff --git a/tools/llvm-mcld/llvm-mcld.cpp b/tools/llvm-mcld/llvm-mcld.cpp
index 7e6b9c8..726e08e 100644
--- a/tools/llvm-mcld/llvm-mcld.cpp
+++ b/tools/llvm-mcld/llvm-mcld.cpp
@@ -896,6 +896,13 @@
 {
   LLVMContext &Context = getGlobalContext();
   llvm_shutdown_obj Y;  // Call llvm_shutdown() on exit.
+  cl::ParseCommandLineOptions(argc, argv, "MCLinker\n");
+
+#ifdef ENABLE_UNITTEST
+  if (UnitTest) {
+    return unit_test( argc, argv );
+  }
+#endif
 
   // Initialize targets first, so that --version shows registered targets.
   InitializeAllTargets();
@@ -906,14 +913,6 @@
   mcld::InitializeAllLinkers();
   mcld::InitializeAllDiagnostics();
 
-  cl::ParseCommandLineOptions(argc, argv, "MCLinker\n");
-
-#ifdef ENABLE_UNITTEST
-  if (UnitTest) {
-    return unit_test( argc, argv );
-  }
-#endif
-
   // Load the module to be compiled...
   std::auto_ptr<Module> M;
 
@@ -1080,7 +1079,7 @@
 
   // Set up MsgHandler
   OwningPtr<mcld::DiagnosticLineInfo>
-    diag_line_info(TheTarget->createDiagnosticLineInfo(*TheTarget->get(),
+    diag_line_info(TheTarget->createDiagnosticLineInfo(*TheTarget,
                                                        TheTriple.getTriple()));
   OwningPtr<mcld::DiagnosticPrinter>
     diag_printer(new mcld::TextDiagnosticPrinter(mcld::errs(),