Author: Stephan Bergmann Date: 2020-11-03T08:17:17+01:00 New Revision: 7a5184ed951ad38d652d7b3c339f4c6ae7842eeb
URL: https://github.com/llvm/llvm-project/commit/7a5184ed951ad38d652d7b3c339f4c6ae7842eeb DIFF: https://github.com/llvm/llvm-project/commit/7a5184ed951ad38d652d7b3c339f4c6ae7842eeb.diff LOG: [scan-build] Fix clang++ pathname again e00629f777d9d62875730f40d266727df300dbb2 "[scan-build] Fix clang++ pathname" had removed the -MAJOR.MINOR suffix, but since presumably LLVM 7 the suffix is only -MAJOR, so ClangCXX (i.e., the CLANG_CXX environment variable passed to clang/tools/scan-build/libexec/ccc-analyzer) now contained a non-existing /path/to/clang-12++ (which apparently went largely unnoticed as clang/tools/scan-build/libexec/ccc-analyzer falls back to just 'clang++' if the executable denoted by CLANG_CXX does not exist). For the new clang/test/Analysis/scan-build/cxx-name.test to be effective, %scan-build must now take care to pass the clang executable's resolved pathname (i.e., ending in .../clang-MAJOR rather than just .../clang) to --use-analyzer. Differential Revision: https://reviews.llvm.org/D89481 Added: clang/test/Analysis/scan-build/cxx-name.test Modified: clang/test/Analysis/scan-build/lit.local.cfg clang/tools/scan-build/bin/scan-build Removed: ################################################################################ diff --git a/clang/test/Analysis/scan-build/cxx-name.test b/clang/test/Analysis/scan-build/cxx-name.test new file mode 100644 index 000000000000..483762d619d1 --- /dev/null +++ b/clang/test/Analysis/scan-build/cxx-name.test @@ -0,0 +1,9 @@ +REQUIRES: shell + +RUN: %scan-build sh -c 'echo "CLANG_CXX=/$(basename "$CLANG_CXX")/"' | FileCheck %s + +Check that scan-build sets the CLANG_CXX environment variable (meant to be +consumed by ccc-analyzer) to an appropriate pathname for the clang++ executable, +derived from the pathname of the clang executable: + +CHECK: CLANG_CXX=/clang++{{(\.exe)?}}/ diff --git a/clang/test/Analysis/scan-build/lit.local.cfg b/clang/test/Analysis/scan-build/lit.local.cfg index b4e097d4bab9..09ed92171478 100644 --- a/clang/test/Analysis/scan-build/lit.local.cfg +++ b/clang/test/Analysis/scan-build/lit.local.cfg @@ -15,4 +15,4 @@ config.substitutions.append(('%scan-build', 'tools', 'scan-build', 'bin')), - config.clang))) + os.path.realpath(config.clang)))) diff --git a/clang/tools/scan-build/bin/scan-build b/clang/tools/scan-build/bin/scan-build index aed8c417b6cc..645f5507b6fa 100755 --- a/clang/tools/scan-build/bin/scan-build +++ b/clang/tools/scan-build/bin/scan-build @@ -1925,7 +1925,7 @@ if ($Clang !~ /\+\+(\.exe)?$/) { $ClangCXX =~ s/.exe$/++.exe/; } else { - $ClangCXX =~ s/\-\d+\.\d+$//; + $ClangCXX =~ s/\-\d+(\.\d+)?$//; $ClangCXX .= "++"; } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits