summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorKristof Umann <kristof.umann@ericsson.com>2019-05-23 22:07:16 +0000
committerKristof Umann <kristof.umann@ericsson.com>2019-05-23 22:07:16 +0000
commit7e55ed84d0598f6cbd282985855a6b810025fa93 (patch)
tree11d6db7e26ba5927de221eec85a3f618fcf8025a /clang/lib
parentd82ddfa7c37d4814c91f1391d42eff87bc75c9dc (diff)
downloadbcm5719-llvm-7e55ed84d0598f6cbd282985855a6b810025fa93.tar.gz
bcm5719-llvm-7e55ed84d0598f6cbd282985855a6b810025fa93.zip
[analyzer] Hide developer-only checker/package options by default
These options are now only visible under -analyzer-checker-option-help-developer. Differential Revision: https://reviews.llvm.org/D61839 llvm-svn: 361561
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp2
-rw-r--r--clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp2
-rw-r--r--clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp23
3 files changed, 16 insertions, 11 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 34693af8f4f..36519c6d487 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -289,6 +289,8 @@ static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args,
Opts.ShowCheckerHelpDeveloper =
Args.hasArg(OPT_analyzer_checker_help_developer);
Opts.ShowCheckerOptionList = Args.hasArg(OPT_analyzer_checker_option_help);
+ Opts.ShowCheckerOptionDeveloperList =
+ Args.hasArg(OPT_analyzer_checker_option_help_developer);
Opts.ShowConfigOptionsList = Args.hasArg(OPT_analyzer_config_help);
Opts.ShowEnabledCheckerList = Args.hasArg(OPT_analyzer_list_enabled_checkers);
Opts.ShouldEmitErrorsOnInvalidConfigValue =
diff --git a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
index ea720c83c29..a5f51ab7ae2 100644
--- a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
+++ b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
@@ -249,7 +249,7 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {
}
// Honor -analyzer-checker-option-help.
- if (Clang->getAnalyzerOpts()->ShowCheckerOptionList) {
+ if (AnOpts.ShowCheckerOptionList || AnOpts.ShowCheckerOptionDeveloperList) {
ento::printCheckerConfigList(llvm::outs(),
Clang->getFrontendOpts().Plugins,
*Clang->getAnalyzerOpts(),
diff --git a/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp b/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp
index 5f96389e597..f3a4765c9ee 100644
--- a/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp
+++ b/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp
@@ -180,12 +180,12 @@ CheckerRegistry::CheckerRegistry(
addDependency(FULLNAME, DEPENDENCY);
#define GET_CHECKER_OPTIONS
-#define CHECKER_OPTION(TYPE, FULLNAME, CMDFLAG, DESC, DEFAULT_VAL) \
- addCheckerOption(TYPE, FULLNAME, CMDFLAG, DEFAULT_VAL, DESC);
+#define CHECKER_OPTION(TYPE, FULLNAME, CMDFLAG, DESC, DEFAULT_VAL, IS_HIDDEN) \
+ addCheckerOption(TYPE, FULLNAME, CMDFLAG, DEFAULT_VAL, DESC, IS_HIDDEN);
#define GET_PACKAGE_OPTIONS
-#define PACKAGE_OPTION(TYPE, FULLNAME, CMDFLAG, DESC, DEFAULT_VAL) \
- addPackageOption(TYPE, FULLNAME, CMDFLAG, DEFAULT_VAL, DESC);
+#define PACKAGE_OPTION(TYPE, FULLNAME, CMDFLAG, DESC, DEFAULT_VAL, IS_HIDDEN) \
+ addPackageOption(TYPE, FULLNAME, CMDFLAG, DEFAULT_VAL, DESC, IS_HIDDEN);
#include "clang/StaticAnalyzer/Checkers/Checkers.inc"
#undef CHECKER_DEPENDENCY
@@ -396,10 +396,10 @@ void CheckerRegistry::addPackageOption(StringRef OptionType,
StringRef PackageFullName,
StringRef OptionName,
StringRef DefaultValStr,
- StringRef Description) {
+ StringRef Description, bool IsHidden) {
PackageOptions.emplace_back(
- PackageFullName,
- CmdLineOption{OptionType, OptionName, DefaultValStr, Description});
+ PackageFullName, CmdLineOption{OptionType, OptionName, DefaultValStr,
+ Description, IsHidden});
}
void CheckerRegistry::addChecker(InitializationFunction Rfn,
@@ -421,10 +421,10 @@ void CheckerRegistry::addCheckerOption(StringRef OptionType,
StringRef CheckerFullName,
StringRef OptionName,
StringRef DefaultValStr,
- StringRef Description) {
+ StringRef Description, bool IsHidden) {
CheckerOptions.emplace_back(
- CheckerFullName,
- CmdLineOption{OptionType, OptionName, DefaultValStr, Description});
+ CheckerFullName, CmdLineOption{OptionType, OptionName, DefaultValStr,
+ Description, IsHidden});
}
void CheckerRegistry::initializeManager(CheckerManager &CheckerMgr) const {
@@ -577,6 +577,9 @@ void CheckerRegistry::printCheckerOptionList(raw_ostream &Out) const {
}
for (const std::pair<StringRef, const CmdLineOption &> &Entry : OptionMap) {
+ if (!AnOpts.ShowCheckerOptionDeveloperList && Entry.second.IsHidden)
+ continue;
+
const CmdLineOption &Option = Entry.second;
std::string FullOption = (Entry.first + ":" + Option.OptionName).str();
OpenPOWER on IntegriCloud