Index: clang/test/Analysis/scan-build/cxx-name.test =================================================================== --- /dev/null +++ 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)?}}/ Index: clang/test/Analysis/scan-build/lit.local.cfg =================================================================== --- clang/test/Analysis/scan-build/lit.local.cfg +++ clang/test/Analysis/scan-build/lit.local.cfg @@ -15,4 +15,4 @@ 'tools', 'scan-build', 'bin')), - config.clang))) + os.path.realpath(config.clang)))) Index: clang/tools/scan-build/bin/scan-build =================================================================== --- clang/tools/scan-build/bin/scan-build +++ clang/tools/scan-build/bin/scan-build @@ -1925,7 +1925,7 @@ $ClangCXX =~ s/.exe$/++.exe/; } else { - $ClangCXX =~ s/\-\d+\.\d+$//; + $ClangCXX =~ s/\-\d+(\.\d+)?$//; $ClangCXX .= "++"; } }