aboutsummaryrefslogtreecommitdiff
path: root/utils/scan-build
diff options
context:
space:
mode:
Diffstat (limited to 'utils/scan-build')
-rwxr-xr-xutils/scan-build16
1 files changed, 16 insertions, 0 deletions
diff --git a/utils/scan-build b/utils/scan-build
index ef1b2c1334..cd5a3073d4 100755
--- a/utils/scan-build
+++ b/utils/scan-build
@@ -808,6 +808,11 @@ OPTIONS:
-analyze-headers - Also analyze functions in #included files.
+ -store [model] - Specify the store model used by the analyzer. By default,
+ the 'basic' store model is used. 'region' specifies a field-
+ sensitive store model. Be warned that the 'region' model
+ is still in very early testing phase and may often crash.
+
-o - Target directory for HTML report files. Subdirectories
will be created as needed to represent separate "runs" of
the analyzer. If this option is not specified, a directory
@@ -918,6 +923,7 @@ my $IgnoreErrors = 0; # Ignore build errors.
my $ViewResults = 0; # View results when the build terminates.
my $ExitStatusFoundBugs = 0; # Exit status reflects whether bugs were found
my @AnalysesToRun;
+my $StoreModel;
if (!@ARGV) {
DisplayHelp();
@@ -1030,6 +1036,12 @@ while (@ARGV) {
$ExitStatusFoundBugs = 1;
next;
}
+
+ if ($arg eq "-store") {
+ shift @ARGV;
+ $StoreModel = '-analyzer-store-' . shift @ARGV;
+ next;
+ }
DieDiag("unrecognized option '$arg'\n") if ($arg =~ /^-/);
@@ -1094,6 +1106,10 @@ if ($AnalyzeHeaders) {
$ENV{'CCC_ANALYZER_ANALYSIS'} = join ' ',@AnalysesToRun;
+if ($StoreModel) {
+ $ENV{'CCC_ANALYZER_STORE_MODEL'} = $StoreModel;
+}
+
# Run the build.
my $ExitStatus = RunBuildCommand(\@ARGV, $IgnoreErrors, $Cmd);