aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Driver/Driver.cpp')
-rw-r--r--lib/Driver/Driver.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 6202702f09..16e7e85ea8 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -294,7 +294,7 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
}
if (C.getArgs().hasArg(options::OPT_print_libgcc_file_name)) {
- llvm::outs() << GetProgramPath("libgcc.a", TC).toString() << "\n";
+ llvm::outs() << GetProgramPath("libgcc.a", TC, true).toString() << "\n";
return false;
}
@@ -925,13 +925,14 @@ llvm::sys::Path Driver::GetFilePath(const char *Name,
}
llvm::sys::Path Driver::GetProgramPath(const char *Name,
- const ToolChain &TC) const {
+ 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 (P.exists())
+ if (WantFile ? P.exists() : P.canExecute())
return P;
}