summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-06-14 21:23:08 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-06-14 21:23:08 +0000
commit3f1a1ffd95723068ad99992805bdc0734f2d72a8 (patch)
tree1d01c790e4aa51f05be729495f100f6fb1fd5e07 /clang/lib/Driver/ToolChains.cpp
parent77b6d019065f57bd33544e03c97355982f40f92c (diff)
downloadbcm5719-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.cpp7
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
OpenPOWER on IntegriCloud