asmar created this revision. asmar added a reviewer: NoQ. Herald added subscribers: cfe-commits, Charusso. Herald added a project: clang.
Fixes "Use of uninitialized value $ScanView in exec" error on systems with scan-view executable not located in the expected place. Currently when scan-build is installed in Debian-like (Ubuntu 18.04 my case) system the scan-view executable is not correctly identified when installed by apt from clang-tools package. The buggy code was first introduced here 10 ago: https://bugs.llvm.org/show_bug.cgi?id=3725 The issue was recently reported on Debian Bugs: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941614 The problem lies in current master scan-build:974: https://github.com/llvm/llvm-project/blob/350522670232c74587138dc83161de514567f411/clang/tools/scan-build/bin/scan-build#L974 Searching for "$RealBin/../../scan-view/bin/scan-view" may not work in such cases because directories are versioned e.g. "$RealBin/../../scan-view-6.0/bin/scan-view". Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D77880 Files: clang/tools/scan-build/bin/scan-build Index: clang/tools/scan-build/bin/scan-build =================================================================== --- clang/tools/scan-build/bin/scan-build +++ clang/tools/scan-build/bin/scan-build @@ -971,6 +971,7 @@ my $ScanView = Cwd::realpath("$RealBin/scan-view"); if (! -x $ScanView) { $ScanView = "scan-view"; } if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); } + if (! -x $ScanView) { $ScanView = `which scan-view`; chomp $ScanView; } exec $ScanView, "$Options{OutputDir}"; }
Index: clang/tools/scan-build/bin/scan-build =================================================================== --- clang/tools/scan-build/bin/scan-build +++ clang/tools/scan-build/bin/scan-build @@ -971,6 +971,7 @@ my $ScanView = Cwd::realpath("$RealBin/scan-view"); if (! -x $ScanView) { $ScanView = "scan-view"; } if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); } + if (! -x $ScanView) { $ScanView = `which scan-view`; chomp $ScanView; } exec $ScanView, "$Options{OutputDir}"; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits