From: Daniel Dunbar Date: Tue, 2 Feb 2010 17:31:12 +0000 (+0000) Subject: Driver/Darwin: Don't error/warn on conflicting deployment targets. Apparently X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=39053672d459bff1d3ab1f72a7901f24e3fa542e;p=clang Driver/Darwin: Don't error/warn on conflicting deployment targets. Apparently 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 --- diff --git a/include/clang/Basic/DiagnosticDriverKinds.td b/include/clang/Basic/DiagnosticDriverKinds.td index aa1d95e424..305811d8ff 100644 --- a/include/clang/Basic/DiagnosticDriverKinds.td +++ b/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 ;">; -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/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 7179ba3c1e..a00d8d9597 100644 --- a/lib/Driver/ToolChains.cpp +++ b/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);