OSDN Git Service

Revert "[Support][CommandLine] Add cl::getRegisteredSubcommands()"
authorZachary Turner <zturner@google.com>
Tue, 13 Sep 2016 04:11:57 +0000 (04:11 +0000)
committerZachary Turner <zturner@google.com>
Tue, 13 Sep 2016 04:11:57 +0000 (04:11 +0000)
This reverts r281290, as it breaks unit tests.
http://lab.llvm.org:8011/builders/clang-x86-windows-msvc2015/builds/303

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281292 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/CommandLine.h
lib/Support/CommandLine.cpp
unittests/Support/CommandLineTest.cpp

index 092dc94..a0ec262 100644 (file)
@@ -1736,28 +1736,6 @@ void PrintHelpMessage(bool Hidden = false, bool Categorized = false);
 /// than just handing around a global list.
 StringMap<Option *> &getRegisteredOptions(SubCommand &Sub = *TopLevelSubCommand);
 
-/// \brief Use this to get all registered SubCommands from the provided parser.
-///
-/// \return A range of all SubCommand pointers registered with the parser.
-///
-/// Typical usage:
-/// \code
-/// main(int argc, char* argv[]) {
-///   llvm::cl::ParseCommandLineOptions(argc, argv);
-///   for (auto* S : llvm::cl::getRegisteredSubcommands()) {
-///     if (*S) {
-///       std::cout << "Executing subcommand: " << S->getName() << std::endl;
-///       // Execute some function based on the name...
-///     }
-///   }
-/// }
-/// \endcode
-///
-/// This interface is useful for defining subcommands in libraries and
-/// the dispatch from a single point (like in the main function).
-iterator_range<typename SmallPtrSet<SubCommand *, 4>::iterator>
-getRegisteredSubcommands();
-
 //===----------------------------------------------------------------------===//
 // Standalone command line processing utilities.
 //
index dcf833a..551cdef 100644 (file)
@@ -309,12 +309,6 @@ public:
     RegisteredSubCommands.erase(sub);
   }
 
-  iterator_range<typename SmallPtrSet<SubCommand *, 4>::iterator>
-  getRegisteredSubcommands() {
-    return make_range(RegisteredSubCommands.begin(),
-                      RegisteredSubCommands.end());
-  }
-
   void reset() {
     ActiveSubCommand = nullptr;
     ProgramName.clear();
@@ -2111,11 +2105,6 @@ StringMap<Option *> &cl::getRegisteredOptions(SubCommand &Sub) {
   return Sub.OptionsMap;
 }
 
-iterator_range<typename SmallPtrSet<SubCommand *, 4>::iterator>
-cl::getRegisteredSubcommands() {
-  return GlobalParser->getRegisteredSubcommands();
-}
-
 void cl::HideUnrelatedOptions(cl::OptionCategory &Category, SubCommand &Sub) {
   for (auto &I : Sub.OptionsMap) {
     if (I.second->Category != &Category &&
index bc4fb5a..9b24c1e 100644 (file)
@@ -476,27 +476,4 @@ TEST(CommandLineTest, RemoveFromAllSubCommands) {
   EXPECT_FALSE(cl::ParseCommandLineOptions(3, args2, nullptr, true));
 }
 
-TEST(CommandLineTest, GetRegisteredSubcommands) {
-  cl::ResetCommandLineParser();
-
-  StackSubCommand SC1("sc1", "First Subcommand");
-  StackSubCommand SC2("sc2", "Second subcommand");
-
-  const char *args0[] = {"prog", "sc1"};
-  const char *args1[] = {"prog", "sc2"};
-
-  EXPECT_TRUE(cl::ParseCommandLineOptions(2, args0, nullptr, true));
-  for (auto *S : cl::getRegisteredSubcommands()) {
-    if (*S)
-      EXPECT_STREQ("sc1", S->getName());
-  }
-
-  cl::ResetAllOptionOccurrences();
-  EXPECT_TRUE(cl::ParseCommandLineOptions(2, args1, nullptr, true));
-  for (auto *S : cl::getRegisteredSubcommands()) {
-    if (*S)
-      EXPECT_STREQ("sc2", S->getName());
-  }
-}
-
 }  // anonymous namespace