Driver: Add Option::getId and Option::matches taking an option
identifier; we will want to use the latter in situations where we just
want to check for a match, but not load options unnecessarily.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66757 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp
index f92e7aa..7a74d34 100644
--- a/lib/Driver/Option.cpp
+++ b/lib/Driver/Option.cpp
@@ -86,6 +86,22 @@
   return false;
 }
 
+bool Option::matches(options::ID 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).
+  if (Alias)
+    return Alias->matches(Id);
+  
+  if (ID == Id)
+    return true;
+  
+  if (Group)
+    return Group->matches(Id);
+  return false;
+}
+
 OptionGroup::OptionGroup(options::ID ID, const char *Name, 
                          const OptionGroup *Group)
   : Option(Option::GroupClass, ID, Name, Group, 0) {