diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-09-18 08:14:46 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-09-18 08:14:46 +0000 |
commit | 48d5aae4387f07aef99dbe03f4047d709e9f4d35 (patch) | |
tree | 18a9c13d47bc2c5feb7faeb2393665d02d66fc93 /lib | |
parent | 6b200b2b698b6ac9e310f2225c69c85d28ae4fb0 (diff) |
Lift getMacosxVersionMin out into Darwin ToolChain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82210 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Driver/ToolChains.cpp | 15 | ||||
-rw-r--r-- | lib/Driver/ToolChains.h | 4 | ||||
-rw-r--r-- | lib/Driver/Tools.cpp | 14 |
3 files changed, 20 insertions, 13 deletions
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index deb06720f4..ce4fc1eea3 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -154,6 +154,21 @@ void Darwin::AddLinkSearchPathArgs(const ArgList &Args, "/../../..")); } +void Darwin::getMacosxVersionMin(const ArgList &Args, + unsigned (&Res)[3]) const { + if (Arg *A = Args.getLastArg(options::OPT_mmacosx_version_min_EQ)) { + bool HadExtra; + if (!Driver::GetReleaseVersion(A->getValue(Args), Res[0], Res[1], Res[2], + HadExtra) || + HadExtra) { + const Driver &D = getHost().getDriver(); + D.Diag(clang::diag::err_drv_invalid_version_number) + << A->getAsString(Args); + } + } else + return getMacosxVersion(Res); +} + DerivedArgList *Darwin::TranslateArgs(InputArgList &Args, const char *BoundArch) const { DerivedArgList *DAL = new DerivedArgList(Args, false); diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index fc32019803..aebc8fae4e 100644 --- a/lib/Driver/ToolChains.h +++ b/lib/Driver/ToolChains.h @@ -91,6 +91,10 @@ public: Res[2] = DarwinVersion[1]; } + /// getMacosxVersionMin - Get the effective -mmacosx-version-min, which is + /// either the -mmacosx-version-min, or the current version if unspecified. + void getMacosxVersionMin(const ArgList &Args, unsigned (&Res)[3]) const; + const char *getMacosxVersionStr() const { return MacosxVersionMin.c_str(); } diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 104d3a3567..ca7baef76d 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -1929,19 +1929,7 @@ void darwin::Link::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Output.getFilename()); unsigned MacosxVersionMin[3]; - if (Arg *A = Args.getLastArg(options::OPT_mmacosx_version_min_EQ)) { - bool HadExtra; - if (!Driver::GetReleaseVersion(A->getValue(Args), MacosxVersionMin[0], - MacosxVersionMin[1], MacosxVersionMin[2], - HadExtra) || - HadExtra) { - const Driver &D = getToolChain().getHost().getDriver(); - D.Diag(clang::diag::err_drv_invalid_version_number) - << A->getAsString(Args); - } - } else { - getDarwinToolChain().getMacosxVersion(MacosxVersionMin); - } + getDarwinToolChain().getMacosxVersionMin(Args, MacosxVersionMin); if (!Args.hasArg(options::OPT_A) && !Args.hasArg(options::OPT_nostdlib) && |