aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/ArgList.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-26 15:39:22 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-26 15:39:22 +0000
commit524b9fb54564ab8bc437118ed55ee7c9e8c1247d (patch)
tree1182603b762407d0c748584d450d1100d4dc18f5 /lib/Driver/ArgList.cpp
parent84304565e238bea1bd87ac68fb5e7810e381a9e2 (diff)
Driver: Add ArgList::AddAllArgsTranslated; for forwarding options to
tools with the name of the option replace, and arguments rendered separately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ArgList.cpp')
-rw-r--r--lib/Driver/ArgList.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Driver/ArgList.cpp b/lib/Driver/ArgList.cpp
index bd3aab351d..44549b0636 100644
--- a/lib/Driver/ArgList.cpp
+++ b/lib/Driver/ArgList.cpp
@@ -127,6 +127,19 @@ void ArgList::AddAllArgValues(ArgStringList &Output, options::ID Id0,
}
}
+void ArgList::AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
+ const char *Translation) const {
+ // FIXME: Make fast.
+ for (const_iterator it = begin(), ie = end(); it != ie; ++it) {
+ const Arg *A = *it;
+ if (A->getOption().matches(Id0)) {
+ A->claim();
+ Output.push_back(Translation);
+ Output.push_back(A->getValue(*this, 0));
+ }
+ }
+}
+
//
InputArgList::InputArgList(const char **ArgBegin, const char **ArgEnd)