diff options
author | Alexander Kornienko <alexfh@google.com> | 2015-08-17 10:01:42 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2015-08-17 10:01:42 +0000 |
commit | 3474b5585842797caee420af1c41f14c26aa01c5 (patch) | |
tree | 5fd81fd689b6a416d833cdcb53ab52d1740b5cd3 /clang/lib/Tooling/CommonOptionsParser.cpp | |
parent | e1fa6da3566a7243e1273ed61b10949ad336fe9e (diff) | |
download | bcm5719-llvm-3474b5585842797caee420af1c41f14c26aa01c5.tar.gz bcm5719-llvm-3474b5585842797caee420af1c41f14c26aa01c5.zip |
[clang-tidy] Make NumOccurrenceFlag for SourcePaths configurable.
Added an additional ctor that takes a NumOccurrenceFlag parameter for the
SourcePaths option. This frees applications from always having to pass at least
one source file, e.g., -list-checks.
http://reviews.llvm.org/D12069
Patch by Don Hinton!
llvm-svn: 245204
Diffstat (limited to 'clang/lib/Tooling/CommonOptionsParser.cpp')
-rw-r--r-- | clang/lib/Tooling/CommonOptionsParser.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Tooling/CommonOptionsParser.cpp b/clang/lib/Tooling/CommonOptionsParser.cpp index adae1781f45..289874bfd8a 100644 --- a/clang/lib/Tooling/CommonOptionsParser.cpp +++ b/clang/lib/Tooling/CommonOptionsParser.cpp @@ -92,16 +92,16 @@ private: }; } // namespace -CommonOptionsParser::CommonOptionsParser(int &argc, const char **argv, - cl::OptionCategory &Category, - const char *Overview) { +CommonOptionsParser::CommonOptionsParser( + int &argc, const char **argv, cl::OptionCategory &Category, + llvm::cl::NumOccurrencesFlag OccurrencesFlag, const char *Overview) { static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden); static cl::opt<std::string> BuildPath("p", cl::desc("Build path"), cl::Optional, cl::cat(Category)); static cl::list<std::string> SourcePaths( - cl::Positional, cl::desc("<source0> [... <sourceN>]"), cl::OneOrMore, + cl::Positional, cl::desc("<source0> [... <sourceN>]"), OccurrencesFlag, cl::cat(Category)); static cl::list<std::string> ArgsAfter( @@ -120,6 +120,9 @@ CommonOptionsParser::CommonOptionsParser(int &argc, const char **argv, argv)); cl::ParseCommandLineOptions(argc, argv, Overview); SourcePathList = SourcePaths; + if ((OccurrencesFlag == cl::ZeroOrMore || OccurrencesFlag == cl::Optional) && + SourcePathList.empty()) + return; if (!Compilations) { std::string ErrorMessage; if (!BuildPath.empty()) { |