std::string Driver::GetProgramPath(const char *Name, const ToolChain &TC, bool WantFile) const { const ToolChain::path_list &List = TC.getProgramPaths(); for (ToolChain::path_list::const_iterator it = List.begin(), ie = List.end(); it != ie; ++it) { llvm::sys::Path P(*it); P.appendComponent(Name); if (WantFile ? P.exists() : P.canExecute()) return P.str(); } // If all else failed, search the path. llvm::sys::Path P(llvm::sys::Program::FindProgramByName(Name)); if (!P.empty()) return P.str(); return Name; }