Driver: Only forward last instance of -mmacosx-version-min= and
-isysroot to clang.
 - Don't forward arbitrary -i* options to clang, just the ones we know
   about.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68553 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index dd3a00e..9e12898 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -287,7 +287,7 @@
   Args.AddAllArgs(CmdArgs, options::OPT_D, options::OPT_U);
   Args.AddAllArgs(CmdArgs, options::OPT_I_Group, options::OPT_F);
   Args.AddLastArg(CmdArgs, options::OPT_P);
-  Args.AddAllArgs(CmdArgs, options::OPT_mmacosx_version_min_EQ);
+  Args.AddLastArg(CmdArgs, options::OPT_mmacosx_version_min_EQ);
 
   // Special case debug options to only pass -g to clang. This is
   // wrong.
@@ -296,7 +296,8 @@
 
   Args.AddLastArg(CmdArgs, options::OPT_nostdinc);
 
-  // FIXME: Clang isn't going to accept just anything here.
+  Args.AddLastArg(CmdArgs, options::OPT_isysroot);
+
   // FIXME: Use iterator.
 
   // Add -i* options, and automatically translate to -include-pth for
@@ -306,7 +307,7 @@
   for (ArgList::const_iterator 
          it = Args.begin(), ie = Args.end(); it != ie; ++it) {
     const Arg *A = *it;
-    if (!A->getOption().matches(options::OPT_i_Group)) 
+    if (!A->getOption().matches(options::OPT_clang_i_Group)) 
       continue;
 
     if (A->getOption().matches(options::OPT_include)) {