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