diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-19 03:26:50 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-19 03:26:50 +0000 |
commit | b32aa51ce9b608002a031e8ca682f073e28024cf (patch) | |
tree | e215c96389cea723029dd9dbd6033583cf337525 | |
parent | b827a0541b5fd095fcdb7ad0c3df93ca158c619a (diff) |
Driver: Resolve inconsistency in matching options against options which are
aliases -- just treat this case as an (unchecked) client error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89306 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Driver/Option.h | 4 | ||||
-rw-r--r-- | lib/Driver/Option.cpp | 9 |
2 files changed, 6 insertions, 7 deletions
diff --git a/include/clang/Driver/Option.h b/include/clang/Driver/Option.h index caf94e9d2c..3c6961e71b 100644 --- a/include/clang/Driver/Option.h +++ b/include/clang/Driver/Option.h @@ -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; diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp index 7dc81d8e51..47a0652965 100644 --- a/lib/Driver/Option.cpp +++ b/lib/Driver/Option.cpp @@ -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); |