]> granicus.if.org Git - clang/commitdiff
Driver/Darwin: Reject invalid arch combinations with
authorDaniel Dunbar <daniel@zuster.org>
Sat, 30 Apr 2011 04:20:40 +0000 (04:20 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Sat, 30 Apr 2011 04:20:40 +0000 (04:20 +0000)
-mios-simulator-version-min.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130593 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticDriverKinds.td
lib/Driver/ToolChains.cpp

index 75d9821030e9982ffe8b4607d1b44eb395bd8773..908a69b162c485b2e30035f0fd358edfa05a2a97 100644 (file)
@@ -80,6 +80,8 @@ def err_drv_preamble_format : Error<
     "incorrect format for -preamble-bytes=N,END">;
 def err_drv_conflicting_deployment_targets : Error<
   "conflicting deployment targets, both '%0' and '%1' are present in environment">;
+def err_drv_invalid_arch_for_deployment_target : Error<
+  "invalid architecture '%0' for deployment target '%1'">;
 
 def warn_c_kext : Warning<
   "ignoring -fapple-kext which is valid for c++ and objective-c++ only">;
index 838e5bf2eb5c98226ad219ee9a5661e74a7d921c..7f464c6944ef0d878bc745d5511155d76db0fe20 100644 (file)
@@ -457,6 +457,13 @@ void Darwin::AddDeploymentTarget(DerivedArgList &Args) const {
     }
   }
 
+  // Reject invalid architecture combinations.
+  if (iOSSimVersion && (getTriple().getArch() != llvm::Triple::x86 &&
+                        getTriple().getArch() != llvm::Triple::x86_64)) {
+    getDriver().Diag(clang::diag::err_drv_invalid_arch_for_deployment_target)
+      << getTriple().getArchName() << iOSSimVersion->getAsString(Args);
+  }
+
   // Set the tool chain target information.
   unsigned Major, Minor, Micro;
   bool HadExtra;