*** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2999 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/CommandLine.cpp b/lib/Support/CommandLine.cpp
index 001fdac..cafc14d 100644
--- a/lib/Support/CommandLine.cpp
+++ b/lib/Support/CommandLine.cpp
@@ -435,6 +435,22 @@
   }
 }
 
+void Option::removeArgument(const char *ArgStr) {
+  if (ArgStr[0]) {
+    assert(getOpts()[ArgStr] == this && "Arg not in map!");
+    getOpts().erase(ArgStr);
+  } else if (getFormattingFlag() == Positional) {
+    vector<Option*>::iterator I =
+      std::find(getPositionalOpts().begin(), getPositionalOpts().end(), this);
+    assert(I != getPositionalOpts().end() && "Arg not registered!");
+    getPositionalOpts().erase(I);
+  } else if (getNumOccurancesFlag() == ConsumeAfter) {
+    assert(!getPositionalOpts().empty() && getPositionalOpts()[0] == this &&
+           "Arg not registered correctly!");
+    getPositionalOpts().erase(getPositionalOpts().begin());
+  }
+}
+
 
 // getValueStr - Get the value description string, using "DefaultMsg" if nothing
 // has been specified yet.
@@ -571,6 +587,22 @@
 // generic_parser_base implementation
 //
 
+// findOption - Return the option number corresponding to the specified
+// argument string.  If the option is not found, getNumOptions() is returned.
+//
+unsigned generic_parser_base::findOption(const char *Name) {
+  unsigned i = 0, e = getNumOptions();
+  string N(Name);
+
+  while (i != e)
+    if (getOption(i) == N)
+      return i;
+    else
+      ++i;
+  return e;
+}
+
+
 // Return the width of the option tag for printing...
 unsigned generic_parser_base::getOptionWidth(const Option &O) const {
   if (O.hasArgStr()) {