llvmc: Fix tool finding logic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118056 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CompilerDriver/Action.cpp b/lib/CompilerDriver/Action.cpp
index 3503bd3..54b55d0 100644
--- a/lib/CompilerDriver/Action.cpp
+++ b/lib/CompilerDriver/Action.cpp
@@ -53,18 +53,18 @@
 #endif
   }
 
-  int ExecuteProgram (const std::string& name,
-                      const StrVector& args) {
+  int ExecuteProgram (const std::string& name, const StrVector& args) {
     sys::Path prog(name);
 
-    if (!prog.isAbsolute())
+    if (!prog.isAbsolute()) {
       prog = FindExecutable(name, ProgramName, (void *)(intptr_t)&Main);
 
-    if (prog.isEmpty()) {
-      prog = sys::Program::FindProgramByName(name);
-      if (prog.isEmpty()) {
-        PrintError("Can't find program '" + name + "'");
-        return -1;
+      if (!prog.canExecute()) {
+        prog = sys::Program::FindProgramByName(name);
+        if (prog.isEmpty()) {
+          PrintError("Can't find program '" + name + "'");
+          return -1;
+        }
       }
     }
     if (!prog.canExecute()) {