summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp
diff options
context:
space:
mode:
authorKristof Umann <kristof.umann@ericsson.com>2019-05-17 15:52:13 +0000
committerKristof Umann <kristof.umann@ericsson.com>2019-05-17 15:52:13 +0000
commit83cc1b35d1871847bdb959d613abcb8bce15ffb2 (patch)
treecb59337e488501c5e4dcafdea0248660ec977ca3 /clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp
parent3a02b12439f8ac9e459a34ad4d02d5bcf1a5540b (diff)
downloadbcm5719-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.cpp8
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;
}
OpenPOWER on IntegriCloud