]> granicus.if.org Git - clang/commitdiff
Driver/Darwin: Don't error/warn on conflicting deployment targets. Apparently
authorDaniel Dunbar <daniel@zuster.org>
Tue, 2 Feb 2010 17:31:12 +0000 (17:31 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 2 Feb 2010 17:31:12 +0000 (17:31 +0000)
this is still a popular thing to do.

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

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

index aa1d95e424648e384d7edd4293a07fdfb3f75625..305811d8ffa1d4bfdadbe929001b1dba59a35dda 100644 (file)
@@ -62,8 +62,6 @@ def err_drv_invalid_value : Error<"invalid value '%1' in '%0'">;
 def err_drv_invalid_int_value : Error<"invalid integral value '%1' in '%0'">;
 def err_drv_invalid_remap_file : Error<
     "invalid option '%0' not of the form <from-file>;<to-file>">;
-def err_drv_conflicting_deployment_targets : Error<
-    "conflicting deployment targets, both MACOSX_DEPLOYMENT_TARGET '%0' and IPHONEOS_DEPLOYMENT_TARGET '%1' are present in environment">;
 
 def warn_drv_input_file_unused : Warning<
   "%0: '%1' input unused when '%2' is present">;
@@ -87,5 +85,7 @@ def warn_ignoring_ftabstop_value : Warning<
   "ignoring invalid -ftabstop value '%0', using default value %1">;
 def warn_drv_missing_resource_library : Warning<
   "missing resource library '%0', link may fail">;
+def warn_drv_conflicting_deployment_targets : Warning<
+    "conflicting deployment targets, both MACOSX_DEPLOYMENT_TARGET '%0' and IPHONEOS_DEPLOYMENT_TARGET '%1' are present in environment">;
 
 }
index 7179ba3c1ea4b5236d1c7c6d1294cfbb4e7e1c0e..a00d8d9597e3ba1b0eef61917bf1765df8a5660c 100644 (file)
@@ -385,12 +385,21 @@ DerivedArgList *Darwin::TranslateArgs(InputArgList &Args,
     if (iPhoneOSTarget && iPhoneOSTarget[0] == '\0')
       iPhoneOSTarget = 0;
 
-    if (OSXTarget) {
-      // Diagnose conflicting deployment targets.
-      if (iPhoneOSTarget)
-        getDriver().Diag(clang::diag::err_drv_conflicting_deployment_targets)
-          << OSXTarget << iPhoneOSTarget;
+    // Diagnose conflicting deployment targets, and choose default platform
+    // based on the tool chain.
+    //
+    // FIXME: Don't hardcode default here.
+    if (OSXTarget && iPhoneOSTarget) {
+      // FIXME: We should see if we can get away with warning or erroring on
+      // this. Perhaps put under -pedantic?
+      if (getTriple().getArch() == llvm::Triple::arm ||
+          getTriple().getArch() == llvm::Triple::thumb)
+        OSXVersion = 0;
+      else
+        iPhoneVersion = 0;
+    }
 
+    if (OSXTarget) {
       const Option *O = Opts.getOption(options::OPT_mmacosx_version_min_EQ);
       OSXVersion = DAL->MakeJoinedArg(0, O, OSXTarget);
       DAL->append(OSXVersion);