]> granicus.if.org Git - clang/commitdiff
Include clang preprocessed sources as well with "crashes" output.
authorTed Kremenek <kremenek@apple.com>
Thu, 25 Sep 2008 00:51:44 +0000 (00:51 +0000)
committerTed Kremenek <kremenek@apple.com>
Thu, 25 Sep 2008 00:51:44 +0000 (00:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56601 91177308-0d34-0410-b5e6-96231b3b80d8

utils/ccc-analyzer

index b3d59dfd7f24bf9169898a38f10b747f4950609d..4f76250b5d432ffe8239eae5de87b195b4dbdf2a 100755 (executable)
@@ -32,15 +32,24 @@ sub GetPPExt {
 }
 
 sub ProcessClangFailure {
-  my ($Lang, $file, $Args, $HtmlDir, $ErrorType, $ofile) = @_;
+  my ($Clang, $Lang, $file, $Args, $HtmlDir, $ErrorType, $ofile) = @_;
   my $Dir = "$HtmlDir/crashes";
   mkpath $Dir;
+
+  # Generate the preprocessed file with cc (i.e., gcc).
   my ($PPH, $PPFile) = tempfile("clang_crash_XXXXXX",
                                   SUFFIX => GetPPExt($Lang),
                                   DIR => $Dir);
 
   system $CC, @$Args, "-E", "-o", $PPFile;
   close ($PPH);
+
+  # Generate the preprocessed file with clang.
+  my $PPFile_Clang = $PPFile;
+  $PPFile_Clang =~ s/[.](.+)$/.clang.$1/;  
+  system $Clang, @$Args, "-E", "-o", "$PPFile_Clang";
+  
+  # Create the info file.
   open (OUT, ">", "$PPFile.info.txt") or die "Cannot open $PPFile.info.txt\n";
   print OUT abs_path($file), "\n";
   print OUT "$ErrorType\n";
@@ -139,11 +148,11 @@ sub Analyze {
 
   # Did the command die because of a signal?
   if ($Result & 127 and $Cmd eq $Clang and defined $HtmlDir) {
-    ProcessClangFailure($Lang, $file, \@CmdArgsSansAnalyses, $HtmlDir,
+    ProcessClangFailure($Clang, $Lang, $file, \@CmdArgsSansAnalyses, $HtmlDir,
                         "Crash", $ofile);
   }
   elsif ($Result) {
-    ProcessClangFailure($Lang, $file, \@CmdArgsSansAnalyses, $HtmlDir,
+    ProcessClangFailure($Clang, $Lang, $file, \@CmdArgsSansAnalyses, $HtmlDir,
                         "Parser Rejects", $ofile);
   }