From 07c3767be59472e19183c7b51fae76481465cb51 Mon Sep 17 00:00:00 2001 From: Zhongxing Xu Date: Mon, 27 Oct 2008 14:26:32 +0000 Subject: [PATCH] Add store option to scan-build and ccc-analyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58248 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/ccc-analyzer | 9 ++++++++- utils/scan-build | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/utils/ccc-analyzer b/utils/ccc-analyzer index 4c47c098b7..9f07009f15 100755 --- a/utils/ccc-analyzer +++ b/utils/ccc-analyzer @@ -241,6 +241,9 @@ if ($Status) { exit($Status >> 8); } my $Analyses = $ENV{'CCC_ANALYZER_ANALYSIS'}; if (!defined($Analyses)) { $Analyses = '-checker-cfref'; } +# Get the store model. +my $StoreModel = $ENV{'CCC_ANALYZER_STORE_MODEL'}; + # Determine the level of verbosity. my $Verbose = 0; if (defined $ENV{CCC_ANALYZER_VERBOSE}) { $Verbose = 1; } @@ -416,9 +419,13 @@ if ($Action eq 'compile' or $Action eq 'link') { push @AnalyzeArgs,$FileLang; } + if (defined $StoreModel) { + push @AnalyzeArgs, $StoreModel; + } + push @AnalyzeArgs,@CompileOpts; push @AnalyzeArgs,$file; - + my @Archs = keys %ArchsSeen; if (scalar @Archs) { foreach my $arch (@Archs) { 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); -- 2.40.0