Use the newly added FindInEnvPath helper in clang

llvm-svn: 212058
This commit is contained in:
Ehsan Akhgari 2014-06-30 19:56:37 +00:00
parent 33d1ae53f7
commit de8c93b982
2 changed files with 3 additions and 37 deletions

View File

@ -939,35 +939,6 @@ void Driver::BuildUniversalActions(const ToolChain &TC,
}
}
/// \brief Check whether the file referenced by Value exists in the LIB
/// environment variable.
static bool ExistsInLibDir(StringRef Value) {
llvm::Optional<std::string> OptPath = llvm::sys::Process::GetEnv("LIB");
if (!OptPath.hasValue())
return false;
#ifdef LLVM_ON_WIN32
const StringRef PathSeparators = ";";
#else
const StringRef PathSeparators = ":";
#endif
SmallVector<StringRef, 8> LibDirs;
llvm::SplitString(OptPath.getValue(), LibDirs, PathSeparators);
for (const auto &LibDir : LibDirs) {
if (LibDir.empty())
continue;
SmallString<128> FilePath(LibDir);
llvm::sys::path::append(FilePath, Value);
if (llvm::sys::fs::exists(Twine(FilePath)))
return true;
}
return false;
}
/// \brief Check that the file referenced by Value exists. If it doesn't,
/// issue a diagnostic and return false.
static bool DiagnoseInputExistence(const Driver &D, const DerivedArgList &Args,
@ -991,7 +962,7 @@ static bool DiagnoseInputExistence(const Driver &D, const DerivedArgList &Args,
if (llvm::sys::fs::exists(Twine(Path)))
return true;
if (D.IsCLMode() && ExistsInLibDir(Value))
if (D.IsCLMode() && llvm::sys::Process::FindInEnvPath("LIB", Value))
return true;
D.Diag(clang::diag::err_drv_no_such_file) << Path.str();

View File

@ -7651,14 +7651,9 @@ static std::string FindFallback(const char *FallbackName,
if (!OptPath.hasValue())
return FallbackName;
#ifdef LLVM_ON_WIN32
const StringRef PathSeparators = ";";
#else
const StringRef PathSeparators = ":";
#endif
const char EnvPathSeparatorStr[] = {llvm::sys::EnvPathSeparator, '\0'};
SmallVector<StringRef, 8> PathSegments;
llvm::SplitString(OptPath.getValue(), PathSegments, PathSeparators);
llvm::SplitString(OptPath.getValue(), PathSegments, EnvPathSeparatorStr);
for (size_t i = 0, e = PathSegments.size(); i != e; ++i) {
const StringRef &PathSegment = PathSegments[i];