]> ruderich.org/simon Gitweb - blhc/blhc.git/commitdiff
Ignore false positives from CC=gcc.
authorSimon Ruderich <simon@ruderich.org>
Mon, 25 Jun 2012 22:54:16 +0000 (00:54 +0200)
committerSimon Ruderich <simon@ruderich.org>
Mon, 25 Jun 2012 22:54:16 +0000 (00:54 +0200)
If there's no "normal" compiler command before or after CC=gcc, skip the
line.

bin/blhc
t/logs/false-positives

index fa2c507fff10c679a94d277b3b95571bf7cebe31..89cde257f5a7e5c39619759578a06b6ee88d0280 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -42,6 +42,10 @@ my $cc_regex_full = qr/
     (?:[a-z0-9_]+-(?:linux-|kfreebsd-)?gnu(?:eabi|eabihf)?-)?
     $cc_regex
     /x;
+# Regex to check if a line contains a compiler command.
+my $cc_regex_normal = qr/
+    \b$cc_regex(?:\s|\\)
+    /x;
 # Regex to catch (GCC) compiler warnings.
 my $warning_regex = qr/^(.+?):(\d+):\d+: warning: (.+?) \[(.+?)\]$/;
 
@@ -769,7 +773,7 @@ foreach my $file (@ARGV) {
 
             # Ignore lines with no compiler commands.
             next if not $non_verbose
-                    and not $line =~ /\b$cc_regex(?:\s|\\)/o;
+                    and not $line =~ /$cc_regex_normal/o;
             # Ignore lines with no filenames with extensions. May miss some
             # non-verbose builds (e.g. "gcc -o test" [sic!]), but shouldn't be
             # a problem as the log will most likely contain other non-verbose
@@ -793,6 +797,14 @@ foreach my $file (@ARGV) {
                                \s.+\s
                                -I/usr/share/qt4/mkspecs/[a-z]+-g\++(?:-64)?
                                \s}x;
+            # Ignore false positives when the line contains only CC=gcc but no
+            # other gcc command.
+            if ($line =~ /(.*)CC=$cc_regex_full(.*)/o) {
+                my $before = $1;
+                my $after  = $2;
+                next if     not $before =~ /$cc_regex_normal/o
+                        and not $after  =~ /$cc_regex_normal/o;
+            }
 
             # Check if additional hardening options were used. Used to ensure
             # they are used for the complete build.
index 3e63b8dc30f8dff6b6d8c4d0a9899425391b9481..35e71e9a68e52ef567c37f9d8abf4b6c8ee1895f 100644 (file)
@@ -3,3 +3,5 @@ dpkg-buildpackage: source package test
 # Some false positives.
 
 swig -Wall -c++ -python test.i
+
++ CC=gcc CFLAGS=-g -O2 ... sh ../../build.sh -r -c lto