OSDN Git Service

[Support][CommandLine] Add cl::getRegisteredSubcommands()
authorDean Michael Berris <dberris@google.com>
Tue, 13 Sep 2016 02:35:00 +0000 (02:35 +0000)
committerDean Michael Berris <dberris@google.com>
Tue, 13 Sep 2016 02:35:00 +0000 (02:35 +0000)
commit50210546290fcc521fad505d437baf4acc472505
tree507346ed56fa4859284851bf528d0aaf132a06e2
parent2cee504d5248b3c8c4bf365e4630132591a2273b
[Support][CommandLine] Add cl::getRegisteredSubcommands()

This should allow users of the library to get a range to iterate through
all the subcommands that are registered to the global parser. This
allows users to define subcommands in libraries that self-register to
have dispatch done at a different stage (like main). It allows for
writing code like the following:

    for (auto *S : cl::getRegisteredSubcommands()) {
      if (*S) {
// Dispatch on S->getName().
      }
    }

This change also contains tests that show this usage pattern.

Reviewers: zturner, dblaikie, echristo

Subscribers: llvm-commits, mehdi_amini

Differential Revision: https://reviews.llvm.org/D24489

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281290 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/CommandLine.h
lib/Support/CommandLine.cpp
unittests/Support/CommandLineTest.cpp