Driver: Add default for ArgList::hasFlag and simplify implementation.

llvm-svn: 68549
This commit is contained in:
Daniel Dunbar 2009-04-07 21:08:57 +00:00
parent ceec5cbaed
commit 30bf11e181
2 changed files with 3 additions and 7 deletions

View File

@ -91,7 +91,7 @@ namespace driver {
/// negation is present, and \arg Default if neither option is
/// given. If both the option and its negation are present, the
/// last one wins.
bool hasFlag(options::ID Pos, options::ID Neg, bool Default) const;
bool hasFlag(options::ID Pos, options::ID Neg, bool Default=true) const;
/// AddLastArg - Render only the last argument match \arg Id0, if
/// present.

View File

@ -50,12 +50,8 @@ Arg *ArgList::getLastArg(options::ID Id0, options::ID Id1, bool Claim) const {
}
bool ArgList::hasFlag(options::ID Pos, options::ID Neg, bool Default) const {
Arg *PosA = getLastArg(Pos);
Arg *NegA = getLastArg(Neg);
if (PosA && NegA)
return NegA->getIndex() < PosA->getIndex();
if (PosA) return true;
if (NegA) return false;
if (Arg *A = getLastArg(Pos, Neg))
return A->getOption().matches(Pos);
return Default;
}