summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-02-02 17:31:12 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-02-02 17:31:12 +0000
commitffa70e8b270ed348a86ce7d064dc32b7db427767 (patch)
treed13bd89704385b61acc22e32390497a30416022b /clang
parentfa5f5965de769cfa3e0a25a6b2fad73b8c344023 (diff)
downloadbcm5719-llvm-ffa70e8b270ed348a86ce7d064dc32b7db427767.tar.gz
bcm5719-llvm-ffa70e8b270ed348a86ce7d064dc32b7db427767.zip
Driver/Darwin: Don't error/warn on conflicting deployment targets. Apparently
this is still a popular thing to do. llvm-svn: 95093
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Basic/DiagnosticDriverKinds.td4
-rw-r--r--clang/lib/Driver/ToolChains.cpp19
2 files changed, 16 insertions, 7 deletions
diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index aa1d95e4246..305811d8ffa 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -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">;
}
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 7179ba3c1ea..a00d8d9597e 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -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);
OpenPOWER on IntegriCloud