diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-07-27 22:10:34 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-07-27 22:10:34 +0000 |
commit | 5cc54863ce5f160c215597ec6da43d938885d48d (patch) | |
tree | ed2af9f5b1ef4cd062025b716e264ebad433a0f4 /clang | |
parent | 75b7f678a3a055cef372daeb928eb466ca350f1e (diff) | |
download | bcm5719-llvm-5cc54863ce5f160c215597ec6da43d938885d48d.tar.gz bcm5719-llvm-5cc54863ce5f160c215597ec6da43d938885d48d.zip |
Add scan-build support for 'plist-html', a hybrid mode that supports the
creation of both HTML and plist files. Plist files are currently not generated
using the same layout algorithm as just specifying '-plist', so this is mainly
intended to help support automated runs of the analyzer.
llvm-svn: 77263
Diffstat (limited to 'clang')
-rwxr-xr-x | clang/utils/ccc-analyzer | 2 | ||||
-rwxr-xr-x | clang/utils/scan-build | 43 |
2 files changed, 26 insertions, 19 deletions
diff --git a/clang/utils/ccc-analyzer b/clang/utils/ccc-analyzer index e4bf415b163..6355abcd192 100755 --- a/clang/utils/ccc-analyzer +++ b/clang/utils/ccc-analyzer @@ -584,7 +584,7 @@ if ($Action eq 'compile' or $Action eq 'link') { if (defined $OutputFormat) { push @AnalyzeArgs, "-analyzer-output=" . $OutputFormat; - if ($OutputFormat eq "plist") { + if ($OutputFormat =~ /plist/) { # Change "Output" to be a file. my ($h, $f) = tempfile("report-XXXXXX", SUFFIX => ".plist", DIR => $HtmlDir); diff --git a/clang/utils/scan-build b/clang/utils/scan-build index 79421caba91..d7b74e34111 100755 --- a/clang/utils/scan-build +++ b/clang/utils/scan-build @@ -1167,7 +1167,12 @@ while (@ARGV) { $OutputFormat = "plist"; next; } - + if ($arg eq "-plist-html") { + shift @ARGV; + $OutputFormat = "plist-html"; + next; + } + DieDiag("unrecognized option '$arg'\n") if ($arg =~ /^-/); last; @@ -1253,25 +1258,27 @@ if (defined $OutputFormat) { # Run the build. my $ExitStatus = RunBuildCommand(\@ARGV, $IgnoreErrors, $Cmd); -if (defined $OutputFormat and $OutputFormat eq "plist") { - Diag "Analysis run complete.\n"; - Diag "Analysis results (plist files) deposited in '$HtmlDir'\n"; -} -else { - # Postprocess the HTML directory. - my $NumBugs = Postprocess($HtmlDir, $BaseDir); +if (defined $OutputFormat) { + if ($OutputFormat =~ /html/) { + # Postprocess the HTML directory. + my $NumBugs = Postprocess($HtmlDir, $BaseDir); + + if ($ViewResults and -r "$HtmlDir/index.html") { + Diag "Analysis run complete.\n"; + Diag "Viewing analysis results in '$HtmlDir' using scan-view.\n"; + my $ScanView = Cwd::realpath("$RealBin/scan-view"); + if (! -x $ScanView) { $ScanView = "scan-view"; } + exec $ScanView, "$HtmlDir"; + } - if ($ViewResults and -r "$HtmlDir/index.html") { - Diag "Analysis run complete.\n"; - Diag "Viewing analysis results in '$HtmlDir' using scan-view.\n"; - my $ScanView = Cwd::realpath("$RealBin/scan-view"); - if (! -x $ScanView) { $ScanView = "scan-view"; } - exec $ScanView, "$HtmlDir"; + if ($ExitStatusFoundBugs) { + exit 1 if ($NumBugs > 0); + exit 0; + } } - - if ($ExitStatusFoundBugs) { - exit 1 if ($NumBugs > 0); - exit 0; + elsif ($OutputFormat =~ /plist/) { + Diag "Analysis run complete.\n"; + Diag "Analysis results (plist files) deposited in '$HtmlDir'\n"; } } |