<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Comments:</div><div><br></div><div><div><blockquote type="cite">+use English;</blockquote><br></div></div><div>According to <a href="http://perldoc.perl.org/English.html">http://perldoc.perl.org/English.html</a>, it's probably better to use </div><div><br></div><div>use English qw( -no_match_vars ) ;</div><div><br></div><div>...not that scan-build's startup time matters <i>that</i> much.</div><div><br></div><div><br></div><div><div></div></div><blockquote type="cite"><div><div>@@ -1576,16 +1584,17 @@</div><div> </div><div> # Determine the location of ccc-analyzer.</div><div> my $AbsRealBin = Cwd::realpath($RealBin);</div><div>+my $CXXAnalyzerExecName = "c++-analyzer";</div><div> my $Cmd = "$AbsRealBin/libexec/ccc-analyzer";</div><div>-my $CmdCXX = "$AbsRealBin/libexec/c++-analyzer";</div><div>+my $CmdCXX = "$AbsRealBin/libexec/$CXXAnalyzerExecName";</div><div> </div><div> if (!defined $Cmd || ! -x $Cmd) {</div><div>   $Cmd = "$AbsRealBin/ccc-analyzer";</div><div>   DieDiag("Executable 'ccc-analyzer' does not exist at '$Cmd'\n") if(! -x $Cmd);</div><div> }</div><div> if (!defined $CmdCXX || ! -x $CmdCXX) {</div><div>-  $CmdCXX = "$AbsRealBin/c++-analyzer";</div><div>-  DieDiag("Executable 'c++-analyzer' does not exist at '$CmdCXX'\n") if(! -x $CmdCXX);</div><div>+  $CmdCXX = "$AbsRealBin/$CXXAnalyzerExecName";</div><div>+  DieDiag("Executable '$CXXAnalyzerExecName' does not exist at '$CmdCXX'\n") if(! -x $CmdCXX);</div><div> }</div></div></blockquote><div><br></div><div>This section is no longer necessary.</div><div><br></div><div><br></div><div>Finally, it seems a bit funny to have a .pm file that contains top-level code and then exits, rather than just declaring stuff. Here's another redesign: ccc-analyzer stays the same, and c++-analyzer is just "do 'ccc-analyzer'". How's that sound?</div><div><br></div><div>If you don't like that, then the top-level code in analyzer_common.pm should probably be organized into some run()-like function. That would at least take out the check for $FindBin::Script: each wrapper script would already know if it was supposed to be a C++ compiler or not.</div><div><br></div><div>Jordan</div></body></html>