X-Git-Url: https://ruderich.org/simon/gitweb/?p=blhc%2Fblhc.git;a=blobdiff_plain;f=bin%2Fblhc;h=0c2ba90e922ba4e6a4887f8d98cf7561825bbccf;hp=7d749028d8df82626aafac63242184f48307764c;hb=5dd19bb96effb0b40c26bb669dd0f8ef176ebf40;hpb=7e0e1f565006b0d85f188d2e1d9e31e2c871ec51 diff --git a/bin/blhc b/bin/blhc index 7d74902..0c2ba90 100755 --- a/bin/blhc +++ b/bin/blhc @@ -51,6 +51,7 @@ my $warning_regex = qr/^(.+?):(\d+):\d+: warning: (.+?) \[(.+?)\]$/; # Regex to catch libtool commands and not lines which show commands executed # by libtool (e.g. libtool: link: ...). my $libtool_regex = qr/\blibtool\s.*--mode=/; +my $libtool_link_regex = qr/\blibtool: link: /; # List of source file extensions which require preprocessing. my @source_preprocess_compile_cpp = ( @@ -1101,6 +1102,8 @@ LINE: # is_non_verbose_build()). next if $skip; + my $orig_line = $line; + # Remove everything until and including the compiler command. Makes # checks easier and faster. $line =~ s/^.*?$cc_regex//o; @@ -1151,7 +1154,11 @@ LINE: } # These file types require preprocessing. if (extension_found(\%extensions_preprocess, @extensions)) { - $preprocess = 1; + # Prevent false positives with "libtool: link: g++ -include test.h + # .." compiler lines. + if ($orig_line !~ /$libtool_link_regex/o) { + $preprocess = 1; + } } if (not $flag_preprocess) {