Package: clang
Version: 1:3.5-25
Severity: wishlist
Tags: patch
Dear Maintainer,
as already reported in https://llvm.org/bugs/show_bug.cgi?id=4312 the option
'--status-bugs' returns no failure if the build fails. I therefore propose a
new option '--status-bugs-or-build-error' that returns an exit code != 0 if
either the build failed or scan-build has detected errors.
-- System Information:
Debian Release: 8.1
APT prefers stable
APT policy: (900, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages clang depends on:
ii clang-3.5 1:3.5-10
clang recommends no packages.
clang suggests no packages.
-- no debconf information
Index: llvm-toolchain-snapshot-3.7~svn239806/clang/tools/scan-build/scan-build
===================================================================
--- llvm-toolchain-snapshot-3.7~svn239806.orig/clang/tools/scan-build/scan-build
+++ llvm-toolchain-snapshot-3.7~svn239806/clang/tools/scan-build/scan-build
@@ -1132,6 +1132,14 @@ OPTIONS:
command. Specifying this option causes the exit status of scan-build to be 1
if it found potential bugs and 0 otherwise.
+ --status-bugs-or-build-error
+
+ By default, the exit status of scan-build is the same as the executed build
+ command. Specifying this option causes the exit status of scan-build to be
+ * 1 if scan-build found potential bugs
+ * the exit status of the executed build command if the build failed
+ * 0 otherwise.
+
--use-cc [compiler path]
--use-cc=[compiler path]
@@ -1372,6 +1380,7 @@ my $HtmlDir; # Parent director
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 $ExitStatusBugsOrBuildError = 0; # Exit status reflects whether bugs were found or build status
my $KeepEmpty = 0; # Don't remove output directory even with 0 results.
my @AnalysesToRun;
my $StoreModel;
@@ -1497,6 +1506,12 @@ while (@ARGV) {
next;
}
+ if ($arg eq "--status-bugs-or-build-error") {
+ shift @ARGV;
+ $ExitStatusBugsOrBuildError = 1;
+ next;
+ }
+
if ($arg eq "-store") {
shift @ARGV;
$StoreModel = shift @ARGV;
@@ -1736,6 +1751,9 @@ if (defined $OutputFormat) {
exit 1 if ($NumBugs > 0);
exit 0;
}
+ if ($ExitStatusBugsOrBuildError) {
+ exit 1 if ($NumBugs > 0);
+ }
}
}