From b0facb18df19ab3d9c6580a96f61201adb949e96 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Tue, 28 Jul 2009 22:08:15 +0000 Subject: Fix a fixme; don't take binaries from the working directory. This fixes clang on non-darwin platforms if a file called 'ld' or 'as' is in the working directory. Based on patch by Pawel Worach! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77379 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Unix/Program.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/System') diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc index d4e88fd6d1..7e82ef3f93 100644 --- a/lib/System/Unix/Program.inc +++ b/lib/System/Unix/Program.inc @@ -45,9 +45,9 @@ Program::FindProgramByName(const std::string& progName) { Path temp; if (!temp.set(progName)) // invalid name return Path(); - // FIXME: have to check for absolute filename - we cannot assume anything - // about "." being in $PATH - if (temp.canExecute()) // already executable as is + // Use the given path verbatim if it contains any slashes; this matches + // the behavior of sh(1) and friends. + if (progName.find('/') != std::string::npos && temp.canExecute()) return temp; // At this point, the file name is valid and its not executable -- cgit v1.2.3