summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorSylvestre Ledru <sylvestre@debian.org>2014-08-08 17:15:13 +0000
committerSylvestre Ledru <sylvestre@debian.org>2014-08-08 17:15:13 +0000
commit9e0752980c549f175197032a14c27bca2e647193 (patch)
treef9ca4a88677cb7656022f69ac25a8765a8fb0b49 /clang
parentbd56fbb9765995b68cc26911ed623b96d0dec9c8 (diff)
downloadbcm5719-llvm-9e0752980c549f175197032a14c27bca2e647193.tar.gz
bcm5719-llvm-9e0752980c549f175197032a14c27bca2e647193.zip
Fix a bug when scan-build is used in a cross-compilation environment with
the --use-cc option. Instead, we will search in the PATH For example: scan-build --use-cc=arm-none-eabi-gcc -o out make -e Initially reported as a Debian Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748777 llvm-svn: 215229
Diffstat (limited to 'clang')
-rwxr-xr-xclang/tools/scan-build/ccc-analyzer15
1 files changed, 13 insertions, 2 deletions
diff --git a/clang/tools/scan-build/ccc-analyzer b/clang/tools/scan-build/ccc-analyzer
index 087f0f0cb1d..4c8f6482a15 100755
--- a/clang/tools/scan-build/ccc-analyzer
+++ b/clang/tools/scan-build/ccc-analyzer
@@ -25,6 +25,17 @@ use Text::ParseWords;
# Compiler command setup.
##===----------------------------------------------------------------------===##
+# Search in the PATH if the compiler exists
+sub SearchInPath {
+ my $file = shift;
+ foreach my $dir (split (':', $ENV{PATH})) {
+ if (-x "$dir/$file") {
+ return 1;
+ }
+ }
+ return 0;
+}
+
my $Compiler;
my $Clang;
my $DefaultCCompiler;
@@ -41,7 +52,7 @@ if (`uname -a` =~ m/Darwin/) {
if ($FindBin::Script =~ /c\+\+-analyzer/) {
$Compiler = $ENV{'CCC_CXX'};
- if (!defined $Compiler || ! -x $Compiler) { $Compiler = $DefaultCXXCompiler; }
+ if (!defined $Compiler || (! -x $Compiler && ! SearchInPath($Compiler))) { $Compiler = $DefaultCXXCompiler; }
$Clang = $ENV{'CLANG_CXX'};
if (!defined $Clang || ! -x $Clang) { $Clang = 'clang++'; }
@@ -50,7 +61,7 @@ if ($FindBin::Script =~ /c\+\+-analyzer/) {
}
else {
$Compiler = $ENV{'CCC_CC'};
- if (!defined $Compiler || ! -x $Compiler) { $Compiler = $DefaultCCompiler; }
+ if (!defined $Compiler || (! -x $Compiler && ! SearchInPath($Compiler))) { $Compiler = $DefaultCCompiler; }
$Clang = $ENV{'CLANG'};
if (!defined $Clang || ! -x $Clang) { $Clang = 'clang'; }
OpenPOWER on IntegriCloud