r177678 - [analyzer] scan-build: emit errors on stderr, and exit(1) instead of exit(0).
Jordan Rose
jordan_rose at apple.com
Thu Mar 21 16:14:26 PDT 2013
Author: jrose
Date: Thu Mar 21 18:14:26 2013
New Revision: 177678
URL: http://llvm.org/viewvc/llvm-project?rev=177678&view=rev
Log:
[analyzer] scan-build: emit errors on stderr, and exit(1) instead of exit(0).
PR14963
Modified:
cfe/trunk/tools/scan-build/scan-build
Modified: cfe/trunk/tools/scan-build/scan-build
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/scan-build/scan-build?rev=177678&r1=177677&r2=177678&view=diff
==============================================================================
--- cfe/trunk/tools/scan-build/scan-build (original)
+++ cfe/trunk/tools/scan-build/scan-build Thu Mar 21 18:14:26 2013
@@ -58,6 +58,16 @@ sub Diag {
}
}
+sub ErrorDiag {
+ if ($UseColor) {
+ print STDERR BOLD, RED "$Prog: ";
+ print STDERR RESET, RED @_;
+ print STDERR RESET;
+ } else {
+ print STDERR "$Prog: @_";
+ }
+}
+
sub DiagCrashes {
my $Dir = shift;
Diag ("The analyzer encountered problems on some source files.\n");
@@ -68,14 +78,14 @@ sub DiagCrashes {
sub DieDiag {
if ($UseColor) {
- print BOLD, RED "$Prog: ";
- print RESET, RED @_;
- print RESET;
+ print STDERR BOLD, RED "$Prog: ";
+ print STDERR RESET, RED @_;
+ print STDERR RESET;
}
else {
- print "$Prog: ", @_;
+ print STDERR "$Prog: ", @_;
}
- exit(0);
+ exit 1;
}
##----------------------------------------------------------------------------##
@@ -90,7 +100,7 @@ if (grep /^--help-checkers$/, @ARGV) {
my ($sign, $name, @text) = split ' ', $_;
print $name, $/ if $sign eq '+';
}
- exit 1;
+ exit 0;
}
##----------------------------------------------------------------------------##
@@ -1310,16 +1320,14 @@ my $InternalStats;
my $OutputFormat = "html";
my $AnalyzerStats = 0;
my $MaxLoop = 0;
+my $RequestDisplayHelp = 0;
+my $ForceDisplayHelp = 0;
+my $AnalyzerDiscoveryMethod;
if (!@ARGV) {
- DisplayHelp();
- exit 1;
+ $ForceDisplayHelp = 1
}
-
-my $displayHelp = 0;
-my $AnalyzerDiscoveryMethod;
-
while (@ARGV) {
# Scan for options we recognize.
@@ -1327,7 +1335,7 @@ while (@ARGV) {
my $arg = $ARGV[0];
if ($arg eq "-h" or $arg eq "--help") {
- $displayHelp = 1;
+ $RequestDisplayHelp = 1;
shift @ARGV;
next;
}
@@ -1507,9 +1515,9 @@ while (@ARGV) {
last;
}
-if (!@ARGV and $displayHelp == 0) {
- Diag("No build command specified.\n\n");
- $displayHelp = 1;
+if (!@ARGV and !$RequestDisplayHelp) {
+ ErrorDiag("No build command specified.\n\n");
+ $ForceDisplayHelp = 1;
}
# Find 'clang'
@@ -1519,7 +1527,7 @@ if (!defined $AnalyzerDiscoveryMethod) {
$Clang = Cwd::realpath("$RealBin/clang");
}
if (!defined $Clang || ! -x $Clang) {
- if (!$displayHelp) {
+ if (!$RequestDisplayHelp && !$ForceDisplayHelp) {
DieDiag("error: Cannot find an executable 'clang' relative to scan-build." .
" Consider using --use-analyzer to pick a version of 'clang' to use for static analysis.\n");
}
@@ -1546,9 +1554,9 @@ else {
}
}
-if ($displayHelp) {
+if ($ForceDisplayHelp || $RequestDisplayHelp) {
DisplayHelp();
- exit 1;
+ exit $ForceDisplayHelp;
}
$ClangCXX = $Clang;
More information about the cfe-commits
mailing list