diff options
author | Kristof Umann <kristof.umann@ericsson.com> | 2019-05-17 15:52:13 +0000 |
---|---|---|
committer | Kristof Umann <kristof.umann@ericsson.com> | 2019-05-17 15:52:13 +0000 |
commit | 83cc1b35d1871847bdb959d613abcb8bce15ffb2 (patch) | |
tree | cb59337e488501c5e4dcafdea0248660ec977ca3 /clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp | |
parent | 3a02b12439f8ac9e459a34ad4d02d5bcf1a5540b (diff) | |
download | bcm5719-llvm-83cc1b35d1871847bdb959d613abcb8bce15ffb2.tar.gz bcm5719-llvm-83cc1b35d1871847bdb959d613abcb8bce15ffb2.zip |
[analyzer] Remove the default value arg from getChecker*Option
Since D57922, the config table contains every checker option, and it's default
value, so having it as an argument for getChecker*Option is redundant.
By the time any of the getChecker*Option function is called, we verified the
value in CheckerRegistry (after D57860), so we can confidently assert here, as
any irregularities detected at this point must be a programmer error. However,
in compatibility mode, verification won't happen, so the default value must be
restored.
This implies something else, other than adding removing one more potential point
of failure -- debug.ConfigDumper will always contain valid values for
checker/package options!
Differential Revision: https://reviews.llvm.org/D59195
llvm-svn: 361042
Diffstat (limited to 'clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp b/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp index 437e4aaf1a2..d41ca0a8f32 100644 --- a/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp +++ b/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp @@ -324,7 +324,9 @@ static void insertAndValidate(StringRef FullName, return; // Insertion failed, the user supplied this package/checker option on the - // command line. If the supplied value is invalid, we'll emit an error. + // command line. If the supplied value is invalid, we'll restore the option + // to it's default value, and if we're in non-compatibility mode, we'll also + // emit an error. StringRef SuppliedValue = It.first->getValue(); @@ -334,6 +336,8 @@ static void insertAndValidate(StringRef FullName, Diags.Report(diag::err_analyzer_checker_option_invalid_input) << FullOption << "a boolean value"; } + + It.first->setValue(Option.DefaultValStr); } return; } @@ -346,6 +350,8 @@ static void insertAndValidate(StringRef FullName, Diags.Report(diag::err_analyzer_checker_option_invalid_input) << FullOption << "an integer value"; } + + It.first->setValue(Option.DefaultValStr); } return; } |