[cfe-commits] r99016 - in /cfe/trunk/lib/Driver: ToolChains.h Tools.cpp

Daniel Dunbar daniel at zuster.org
Fri Mar 19 17:50:21 PDT 2010


Author: ddunbar
Date: Fri Mar 19 19:50:21 2010
New Revision: 99016

URL: http://llvm.org/viewvc/llvm-project?rev=99016&view=rev
Log:
Driver: Fix possible crash when targetting an unknown (unsupported) Darwin
platform, e.g. ppc.

Modified:
    cfe/trunk/lib/Driver/ToolChains.h
    cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/lib/Driver/ToolChains.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.h?rev=99016&r1=99015&r2=99016&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains.h (original)
+++ cfe/trunk/lib/Driver/ToolChains.h Fri Mar 19 19:50:21 2010
@@ -96,6 +96,8 @@
     return TargetIsIPhoneOS;
   }
 
+  bool isTargetInitialized() const { return TargetInitialized; }
+
   void getTargetVersion(unsigned (&Res)[3]) const {
     assert(TargetInitialized && "Target not initialized!");
     Res[0] = TargetVersion[0];

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=99016&r1=99015&r2=99016&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Fri Mar 19 19:50:21 2010
@@ -655,6 +655,12 @@
   } else {
     const toolchains::Darwin &DarwinTC(
       reinterpret_cast<const toolchains::Darwin&>(TC));
+
+    // If the target isn't initialized (e.g., an unknown Darwin platform, return
+    // the default triple).
+    if (!DarwinTC.isTargetInitialized())
+      return Triple.getTriple();
+    
     unsigned Version[3];
     DarwinTC.getTargetVersion(Version);
 





More information about the cfe-commits mailing list