diff --git a/llvm/include/llvm/Support/PathV1.h b/llvm/include/llvm/Support/PathV1.h index 818b32964eea..cac6226ac8fc 100644 --- a/llvm/include/llvm/Support/PathV1.h +++ b/llvm/include/llvm/Support/PathV1.h @@ -272,11 +272,13 @@ namespace sys { /// this function to return "foo". /// @returns StringRef containing the basename of the path /// @brief Get the base name of the path - StringRef getBasename() const; + LLVM_ATTRIBUTE_DEPRECATED(StringRef getBasename() const, + LLVMV_PATH_DEPRECATED_MSG); /// This function strips off the suffix of the path beginning with the /// path separator ('/' on Unix, '\' on Windows) and returns the result. - StringRef getDirname() const; + LLVM_ATTRIBUTE_DEPRECATED(StringRef getDirname() const, + LLVMV_PATH_DEPRECATED_MSG); /// This function strips off the path and basename(up to and /// including the last dot) of the file or directory name and @@ -284,7 +286,8 @@ namespace sys { /// this function to return "bar". /// @returns StringRef containing the suffix of the path /// @brief Get the suffix of the path - StringRef getSuffix() const; + LLVM_ATTRIBUTE_DEPRECATED(StringRef getSuffix() const, + LLVMV_PATH_DEPRECATED_MSG); /// Obtain a 'C' string for the path name. /// @returns a 'C' string containing the path name. diff --git a/llvm/lib/CompilerDriver/CompilationGraph.cpp b/llvm/lib/CompilerDriver/CompilationGraph.cpp index 87a2c4817a84..33c6566499b8 100644 --- a/llvm/lib/CompilerDriver/CompilationGraph.cpp +++ b/llvm/lib/CompilerDriver/CompilationGraph.cpp @@ -32,7 +32,8 @@ using namespace llvmc; namespace llvmc { const std::string* LanguageMap::GetLanguage(const sys::Path& File) const { - StringRef suf = File.getSuffix(); + // Remove the '.'. + StringRef suf = sys::path::extension(File.str()).substr(1); LanguageMap::const_iterator Lang = this->find(suf.empty() ? "*empty*" : suf); if (Lang == this->end()) { diff --git a/llvm/lib/CompilerDriver/Main.cpp b/llvm/lib/CompilerDriver/Main.cpp index 4f8794041b9a..88cfdb212305 100644 --- a/llvm/lib/CompilerDriver/Main.cpp +++ b/llvm/lib/CompilerDriver/Main.cpp @@ -43,8 +43,7 @@ namespace { return 0; } else if (SaveTemps == SaveTempsEnum::Obj && !OutputFilename.empty()) { - tempDir = OutputFilename; - tempDir = tempDir.getDirname(); + tempDir = sys::path::parent_path(OutputFilename); } else { // SaveTemps == Cwd --> use current dir (leave tempDir empty). diff --git a/llvm/lib/CompilerDriver/Tool.cpp b/llvm/lib/CompilerDriver/Tool.cpp index 232bd41c4ba2..876759aa72b0 100644 --- a/llvm/lib/CompilerDriver/Tool.cpp +++ b/llvm/lib/CompilerDriver/Tool.cpp @@ -61,7 +61,7 @@ sys::Path Tool::OutFilename(const sys::Path& In, Out.appendSuffix(OutputSuffix); } else { - Out.set(In.getBasename()); + Out.set(sys::path::stem(In.str())); Out.appendSuffix(OutputSuffix); } } @@ -69,7 +69,7 @@ sys::Path Tool::OutFilename(const sys::Path& In, if (IsJoin()) Out = MakeTempFile(TempDir, "tmp", OutputSuffix); else - Out = MakeTempFile(TempDir, In.getBasename(), OutputSuffix); + Out = MakeTempFile(TempDir, sys::path::stem(In.str()), OutputSuffix); } return Out; } diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp index dd0b07e09bda..c710d7ee8692 100644 --- a/llvm/lib/Linker/LinkModules.cpp +++ b/llvm/lib/Linker/LinkModules.cpp @@ -1301,10 +1301,9 @@ Linker::LinkModules(Module *Dest, Module *Src, std::string *ErrorMsg) { // If the source library's module id is in the dependent library list of the // destination library, remove it since that module is now linked in. - sys::Path modId; - modId.set(Src->getModuleIdentifier()); - if (!modId.isEmpty()) - Dest->removeLibrary(modId.getBasename()); + const std::string &modId = Src->getModuleIdentifier(); + if (!modId.empty()) + Dest->removeLibrary(sys::path::stem(modId)); return false; } diff --git a/llvm/tools/llvm-ld/llvm-ld.cpp b/llvm/tools/llvm-ld/llvm-ld.cpp index 445366c0f73a..475fcf4d8ac8 100644 --- a/llvm/tools/llvm-ld/llvm-ld.cpp +++ b/llvm/tools/llvm-ld/llvm-ld.cpp @@ -526,7 +526,7 @@ int main(int argc, char **argv, char **envp) { initializeTarget(Registry); // Initial global variable above for convenience printing of program name. - progname = sys::Path(argv[0]).getBasename(); + progname = sys::path::stem(argv[0]); // Parse the command line options cl::ParseCommandLineOptions(argc, argv, "llvm linker\n"); @@ -538,11 +538,8 @@ int main(int argc, char **argv, char **envp) { OutputFilename = "a.exe"; // If there is no suffix add an "exe" one. - sys::Path ExeFile( OutputFilename ); - if (ExeFile.getSuffix() == "") { - ExeFile.appendSuffix("exe"); - OutputFilename = ExeFile.str(); - } + if (sys::path::extension(OutputFilename).empty()) + OutputFilename.append(".exe"); } #endif diff --git a/llvm/utils/KillTheDoctor/KillTheDoctor.cpp b/llvm/utils/KillTheDoctor/KillTheDoctor.cpp index a623d6af8d9c..7a89dd379b70 100644 --- a/llvm/utils/KillTheDoctor/KillTheDoctor.cpp +++ b/llvm/utils/KillTheDoctor/KillTheDoctor.cpp @@ -523,7 +523,7 @@ int main(int argc, char **argv) { errs().indent(ToolName.size()) << ": DLL Name : " << DLLName << '\n'; } - if (NoUser32 && sys::Path(DLLName).getBasename() == "user32") { + if (NoUser32 && sys::path::stem(DLLName) == "user32") { // Program is loading user32.dll, in the applications we are testing, // this only happens if an assert has fired. By now the message has // already been printed, so simply close the program.