trixirt created this revision.
trixirt added a reviewer: dcoughlin.
trixirt added a project: clang.
Herald added subscribers: cfe-commits, steakhal, ASDenysPetrov, Charusso, 
dkrupp, donat.nagy, Szelethus, a.sidorin, baloghadamsoftware.
trixirt requested review of this revision.

When ccc-analyzer fails to handle cc args, it outputs only

      

could not find clang line

      

To improve this message, print out the errors so now the output
looks like

      

could not find clang line
Please check errors
clang-12: error: unknown argument: '-fno-ipa-cp-clone'
clang-12: error: unknown argument: '-fno-partial-inlining'


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88784

Files:
  clang/tools/scan-build/libexec/ccc-analyzer


Index: clang/tools/scan-build/libexec/ccc-analyzer
===================================================================
--- clang/tools/scan-build/libexec/ccc-analyzer
+++ clang/tools/scan-build/libexec/ccc-analyzer
@@ -188,12 +188,19 @@
   my $mode = shift;
   my $Args = shift;
   my $line;
+  my $err = "";
   my $OutputStream = silent_system($HtmlDir, $Clang, "-###", $mode, @$Args);
   while (<$OutputStream>) {
+    $err = $err . $_ if ($_ =~ /error:/);
     next if (!/\s"?-cc1"?\s/);
     $line = $_;
   }
-  die "could not find clang line\n" if (!defined $line);
+  if (!defined $line) {
+    print STDERR "could not find clang line\n";
+    print STDERR "Please check errors\n";
+    print STDERR $err;
+    exit 1
+  }
   # Strip leading and trailing whitespace characters.
   $line =~ s/^\s+|\s+$//g;
   my @items = quotewords('\s+', 0, $line);


Index: clang/tools/scan-build/libexec/ccc-analyzer
===================================================================
--- clang/tools/scan-build/libexec/ccc-analyzer
+++ clang/tools/scan-build/libexec/ccc-analyzer
@@ -188,12 +188,19 @@
   my $mode = shift;
   my $Args = shift;
   my $line;
+  my $err = "";
   my $OutputStream = silent_system($HtmlDir, $Clang, "-###", $mode, @$Args);
   while (<$OutputStream>) {
+    $err = $err . $_ if ($_ =~ /error:/);
     next if (!/\s"?-cc1"?\s/);
     $line = $_;
   }
-  die "could not find clang line\n" if (!defined $line);
+  if (!defined $line) {
+    print STDERR "could not find clang line\n";
+    print STDERR "Please check errors\n";
+    print STDERR $err;
+    exit 1
+  }
   # Strip leading and trailing whitespace characters.
   $line =~ s/^\s+|\s+$//g;
   my @items = quotewords('\s+', 0, $line);
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to