Driver: Resolve inconsistency in matching options against options which are

aliases -- just treat this case as an (unchecked) client error.

llvm-svn: 89306
This commit is contained in:
Daniel Dunbar 2009-11-19 03:26:50 +00:00
parent 0bfb21e4b0
commit b3b47b8dde
2 changed files with 6 additions and 7 deletions

View File

@ -136,6 +136,10 @@ namespace driver {
/// matches - Predicate for whether this option is part of the
/// given option (which may be a group).
///
/// Note that matches against options which are an alias should never be
/// done -- aliases do not participate in matching and so such a query will
/// always be false.
bool matches(const Option *Opt) const;
bool matches(unsigned Id) const;

View File

@ -71,9 +71,7 @@ void Option::dump() const {
}
bool Option::matches(const Option *Opt) const {
// Aliases are never considered in matching.
if (Opt->getAlias())
return matches(Opt->getAlias());
// Aliases are never considered in matching, look through them.
if (Alias)
return Alias->matches(Opt);
@ -86,10 +84,7 @@ bool Option::matches(const Option *Opt) const {
}
bool Option::matches(unsigned Id) const {
// FIXME: Decide what to do here; we should either pull out the
// handling of alias on the option for Id from the other matches, or
// find some other solution (which hopefully doesn't require using
// the option table).
// Aliases are never considered in matching, look through them.
if (Alias)
return Alias->matches(Id);