Author: dcoughlin Date: Wed Nov 11 14:39:03 2015 New Revision: 252797 URL: http://llvm.org/viewvc/llvm-project?rev=252797&view=rev Log: [analyzer] Fix scan-build to handle missing output directories.
Cwd::abs_path has a somewhat tricky semantics: if it's operand directory does not exist, it'll return undefined (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=257568). This may cause scan-build to silently ignore output directory (specified with -o) and use /tmp instead of trying to create directory. This tiny patch fixes the problem. A patch by Yury Gribov! Differential Revision: http://reviews.llvm.org/D14535 Modified: cfe/trunk/tools/scan-build/scan-build Modified: cfe/trunk/tools/scan-build/scan-build URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/scan-build/scan-build?rev=252797&r1=252796&r2=252797&view=diff ============================================================================== --- cfe/trunk/tools/scan-build/scan-build (original) +++ cfe/trunk/tools/scan-build/scan-build Wed Nov 11 14:39:03 2015 @@ -1478,7 +1478,9 @@ sub ProcessArgs { # Construct an absolute path. Uses the current working directory # as a base if the original path was not absolute. - $Options{OutputDir} = abs_path(shift @$Args); + my $OutDir = shift @$Args; + mkpath($OutDir) unless (-e $OutDir); # abs_path wants existing dir + $Options{OutputDir} = abs_path($OutDir); next; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits