diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-06-14 21:23:08 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-06-14 21:23:08 +0000 |
commit | 3f1a1ffd95723068ad99992805bdc0734f2d72a8 (patch) | |
tree | 1d01c790e4aa51f05be729495f100f6fb1fd5e07 /clang/lib/Driver/ToolChains.cpp | |
parent | 77b6d019065f57bd33544e03c97355982f40f92c (diff) | |
download | bcm5719-llvm-3f1a1ffd95723068ad99992805bdc0734f2d72a8.tar.gz bcm5719-llvm-3f1a1ffd95723068ad99992805bdc0734f2d72a8.zip |
Driver: Eliminate uses of Arg::getIndex.
Also, fix a memory leak.
llvm-svn: 105963
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 19b1ec823db..9accfe75167 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -487,9 +487,8 @@ DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args, if (getArchName() != A->getValue(Args, 0)) continue; - // FIXME: The arg is leaked here, and we should have a nicer - // interface for this. - unsigned Prev, Index = Prev = A->getIndex() + 1; + unsigned Index = Args.getBaseArgs().MakeIndex(A->getValue(Args, 1)); + unsigned Prev = Index; Arg *XarchArg = Opts.ParseOneArg(Args, Index); // If the argument parsing failed or more than one argument was @@ -509,6 +508,8 @@ DerivedArgList *Darwin::TranslateArgs(const DerivedArgList &Args, XarchArg->setBaseArg(A); A = XarchArg; + + DAL->AddSynthesizedArg(A); } // Sob. These is strictly gcc compatible for the time being. Apple |