diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-02-02 17:31:12 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-02-02 17:31:12 +0000 |
commit | ffa70e8b270ed348a86ce7d064dc32b7db427767 (patch) | |
tree | d13bd89704385b61acc22e32390497a30416022b /clang | |
parent | fa5f5965de769cfa3e0a25a6b2fad73b8c344023 (diff) | |
download | bcm5719-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.td | 4 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 19 |
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); |