forked from OSchip/llvm-project
Driver: Add ArgList::AddAllArgsTranslated; for forwarding options to
tools with the name of the option replace, and arguments rendered separately. llvm-svn: 67753
This commit is contained in:
parent
a32f7a124a
commit
4e5696b984
|
@ -110,6 +110,12 @@ namespace driver {
|
|||
void AddAllArgValues(ArgStringList &Output, options::ID Id0,
|
||||
options::ID Id1) const;
|
||||
|
||||
// AddAllArgsTranslated - Render all the arguments matching the
|
||||
// given ids, but forced to separate args and using the provided
|
||||
// name instead of the first option value.
|
||||
void AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
|
||||
const char *Translation) const;
|
||||
|
||||
/// @}
|
||||
/// @name Arg Synthesis
|
||||
/// @{
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue