r178102 - If we're unable to create the TargetMachine, then just quit producing the

Chad Rosier mcrosier at apple.com
Tue Mar 26 17:14:35 PDT 2013


Author: mcrosier
Date: Tue Mar 26 19:14:35 2013
New Revision: 178102

URL: http://llvm.org/viewvc/llvm-project?rev=178102&view=rev
Log:
If we're unable to create the TargetMachine, then just quit producing the
backend output; there's no need to report a fatal error.  This reverts r178042.
Part of rdar://13295753 and rdar://13401547

Modified:
    cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td
    cfe/trunk/lib/CodeGen/BackendUtil.cpp

Modified: cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td?rev=178102&r1=178101&r2=178102&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticFrontendKinds.td Tue Mar 26 19:14:35 2013
@@ -42,6 +42,8 @@ def err_fe_unable_to_load_pch : Error<
     "unable to load PCH file">;
 def err_fe_unable_to_load_plugin : Error<
     "unable to load plugin '%0': '%1'">;
+def err_fe_unable_to_create_target : Error<
+    "unable to create target: '%0'">;
 def err_fe_unable_to_interface_with_target : Error<
     "unable to interface with target machine">;
 def err_fe_unable_to_open_output : Error<

Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/BackendUtil.cpp?rev=178102&r1=178101&r2=178102&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/BackendUtil.cpp (original)
+++ cfe/trunk/lib/CodeGen/BackendUtil.cpp Tue Mar 26 19:14:35 2013
@@ -329,7 +329,7 @@ TargetMachine *EmitAssemblyHelper::Creat
   const llvm::Target *TheTarget = TargetRegistry::lookupTarget(Triple, Error);
   if (!TheTarget) {
     if (MustCreateTM)
-      llvm::report_fatal_error ("Unable to create target: " + Error);
+      Diags.Report(diag::err_fe_unable_to_create_target) << Error;
     return 0;
   }
 
@@ -527,6 +527,7 @@ void EmitAssemblyHelper::EmitAssembly(Ba
                       Action != Backend_EmitBC &&
                       Action != Backend_EmitLL);
   TargetMachine *TM = CreateTargetMachine(UsesCodeGen);
+  if (UsesCodeGen && !TM) return;
   CreatePasses(TM);
 
   switch (Action) {





More information about the cfe-commits mailing list