diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2014-11-24 09:15:30 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2014-11-24 09:15:30 +0000 |
commit | 9f4dbff6669c8037f3b036bcf580d14f1a4f12a5 (patch) | |
tree | 47df2c12b57214af6c31e47404b005675b8b7ffc /include/clang/Tooling/CommonOptionsParser.h | |
parent | f73d5f23a889b93d89ddef61ac0995df40286bb8 (diff) | |
download | src-9f4dbff6669c8037f3b036bcf580d14f1a4f12a5.tar.gz src-9f4dbff6669c8037f3b036bcf580d14f1a4f12a5.zip |
Vendor import of clang RELEASE_350/final tag r216957 (effectively, 3.5.0 release):vendor/clang/clang-release_350-r216957
Notes
Notes:
svn path=/vendor/clang/dist/; revision=274958
svn path=/vendor/clang/clang-release_350-r216957/; revision=274959; tag=vendor/clang/clang-release_350-r216957
Diffstat (limited to 'include/clang/Tooling/CommonOptionsParser.h')
-rw-r--r-- | include/clang/Tooling/CommonOptionsParser.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/include/clang/Tooling/CommonOptionsParser.h b/include/clang/Tooling/CommonOptionsParser.h index eaffe4363515..815ede80c233 100644 --- a/include/clang/Tooling/CommonOptionsParser.h +++ b/include/clang/Tooling/CommonOptionsParser.h @@ -28,6 +28,7 @@ #define LLVM_TOOLS_CLANG_INCLUDE_CLANG_TOOLING_COMMONOPTIONSPARSER_H #include "clang/Tooling/CompilationDatabase.h" +#include "llvm/Support/CommandLine.h" namespace clang { namespace tooling { @@ -46,13 +47,14 @@ namespace tooling { /// using namespace clang::tooling; /// using namespace llvm; /// +/// static cl::OptionCategory MyToolCategory("My tool options"); /// static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); /// static cl::extrahelp MoreHelp("\nMore help text..."); -/// static cl:opt<bool> YourOwnOption(...); +/// static cl::opt<bool> YourOwnOption(...); /// ... /// /// int main(int argc, const char **argv) { -/// CommonOptionsParser OptionsParser(argc, argv); +/// CommonOptionsParser OptionsParser(argc, argv, MyToolCategory); /// ClangTool Tool(OptionsParser.getCompilations(), /// OptionsParser.getSourcePathListi()); /// return Tool.run(newFrontendActionFactory<clang::SyntaxOnlyAction>()); @@ -61,10 +63,16 @@ namespace tooling { class CommonOptionsParser { public: /// \brief Parses command-line, initializes a compilation database. + /// /// This constructor can change argc and argv contents, e.g. consume /// command-line options used for creating FixedCompilationDatabase. + /// + /// All options not belonging to \p Category become hidden. + /// /// This constructor exits program in case of error. - CommonOptionsParser(int &argc, const char **argv, const char *Overview = 0); + CommonOptionsParser(int &argc, const char **argv, + llvm::cl::OptionCategory &Category, + const char *Overview = nullptr); /// Returns a reference to the loaded compilations database. CompilationDatabase &getCompilations() { @@ -79,7 +87,7 @@ public: static const char *const HelpMessage; private: - OwningPtr<CompilationDatabase> Compilations; + std::unique_ptr<CompilationDatabase> Compilations; std::vector<std::string> SourcePathList; }; |