diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index a18312a84fa0..08dcc11d62e3 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -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 OptPath = llvm::sys::Process::GetEnv("LIB"); - if (!OptPath.hasValue()) - return false; - -#ifdef LLVM_ON_WIN32 - const StringRef PathSeparators = ";"; -#else - const StringRef PathSeparators = ":"; -#endif - - SmallVector 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(); diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 3587bbb2f5fa..f5d79941363a 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -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 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];