]> granicus.if.org Git - clang/commitdiff
Lift getMacosxVersionMin out into Darwin ToolChain.
authorDaniel Dunbar <daniel@zuster.org>
Fri, 18 Sep 2009 08:14:46 +0000 (08:14 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 18 Sep 2009 08:14:46 +0000 (08:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82210 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
lib/Driver/ToolChains.h
lib/Driver/Tools.cpp

index deb06720f4978b5fe1289ec83de240317086c92a..ce4fc1eea3d93597566910d3406319f8f349c95d 100644 (file)
@@ -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);
index fc320198039669d4609743c5a0d2498cad12e73f..aebc8fae4e78f3333b240b78e008182ca6f78f7d 100644 (file)
@@ -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();
   }
index 104d3a3567d7d451a11a4455bc80872332d29531..ca7baef76d13fc3d5983bc628b97ec27a9efd3de 100644 (file)
@@ -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) &&