From 917b043a166030eb2882fc1be76102914b0bcb53 Mon Sep 17 00:00:00 2001 From: "Michael J. Spencer" Date: Mon, 10 Jan 2011 02:34:23 +0000 Subject: [PATCH] Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists. llvm-svn: 123151 --- include/llvm/Support/PathV1.h | 3 ++- lib/Archive/Archive.cpp | 6 ++++-- lib/Archive/ArchiveWriter.cpp | 4 +++- lib/CompilerDriver/Main.cpp | 4 +++- lib/Support/Path.cpp | 1 + lib/Support/Unix/Path.inc | 3 ++- lib/Support/Unix/Program.inc | 4 +++- lib/Support/Windows/Path.inc | 8 +++++--- tools/llvm-ar/llvm-ar.cpp | 7 +++++-- tools/llvm-ranlib/llvm-ranlib.cpp | 4 +++- 10 files changed, 31 insertions(+), 13 deletions(-) diff --git a/include/llvm/Support/PathV1.h b/include/llvm/Support/PathV1.h index 86fdb0c0acc..b6470795fd7 100644 --- a/include/llvm/Support/PathV1.h +++ b/include/llvm/Support/PathV1.h @@ -380,7 +380,8 @@ namespace sys { /// directory. /// @brief Determines if the path is a file or directory in /// the file system. - bool exists() const; + LLVM_ATTRIBUTE_DEPRECATED(bool exists() const, + LLVM_PATH_DEPRECATED_MSG(fs::exists)); /// This function determines if the path name references an /// existing directory. diff --git a/lib/Archive/Archive.cpp b/lib/Archive/Archive.cpp index 20d9deec99c..8aa5d5bd779 100644 --- a/lib/Archive/Archive.cpp +++ b/lib/Archive/Archive.cpp @@ -15,6 +15,7 @@ #include "ArchiveInternals.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Module.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Process.h" #include "llvm/Support/system_error.h" @@ -66,8 +67,9 @@ ArchiveMember::ArchiveMember(Archive* PAR) // different file, presumably as an update to the member. It also makes sure // the flags are reset correctly. bool ArchiveMember::replaceWith(const sys::Path& newFile, std::string* ErrMsg) { - if (!newFile.exists()) { - if (ErrMsg) + bool Exists; + if (sys::fs::exists(newFile.str(), Exists) || !Exists) { + if (ErrMsg) *ErrMsg = "Can not replace an archive member with a non-existent file"; return true; } diff --git a/lib/Archive/ArchiveWriter.cpp b/lib/Archive/ArchiveWriter.cpp index 07516c6aa45..7499a22878e 100644 --- a/lib/Archive/ArchiveWriter.cpp +++ b/lib/Archive/ArchiveWriter.cpp @@ -15,6 +15,7 @@ #include "llvm/Module.h" #include "llvm/ADT/OwningPtr.h" #include "llvm/Bitcode/ReaderWriter.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Process.h" #include "llvm/Support/Signals.h" @@ -156,7 +157,8 @@ Archive::fillHeader(const ArchiveMember &mbr, ArchiveMemberHeader& hdr, bool Archive::addFileBefore(const sys::Path& filePath, iterator where, std::string* ErrMsg) { - if (!filePath.exists()) { + bool Exists; + if (sys::fs::exists(filePath.str(), Exists) || !Exists) { if (ErrMsg) *ErrMsg = "Can not add a non-existent file to archive"; return true; diff --git a/lib/CompilerDriver/Main.cpp b/lib/CompilerDriver/Main.cpp index 88cfdb21230..7120027f7ce 100644 --- a/lib/CompilerDriver/Main.cpp +++ b/lib/CompilerDriver/Main.cpp @@ -16,6 +16,7 @@ #include "llvm/CompilerDriver/CompilationGraph.h" #include "llvm/CompilerDriver/Error.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/Path.h" @@ -50,7 +51,8 @@ namespace { return 0; } - if (!tempDir.exists()) { + bool Exists; + if (llvm::sys::fs::exists(tempDir.str(), Exists) || !Exists) { std::string ErrMsg; if (tempDir.createDirectoryOnDisk(true, &ErrMsg)) { PrintError(ErrMsg); diff --git a/lib/Support/Path.cpp b/lib/Support/Path.cpp index 3e0ee8dd86d..4689208ded3 100644 --- a/lib/Support/Path.cpp +++ b/lib/Support/Path.cpp @@ -13,6 +13,7 @@ #include "llvm/Support/Path.h" #include "llvm/Config/config.h" +#include "llvm/Support/FileSystem.h" #include #include #include diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc index 886ba6bf6d4..b39e465a535 100644 --- a/lib/Support/Unix/Path.inc +++ b/lib/Support/Unix/Path.inc @@ -811,7 +811,8 @@ sys::CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg){ bool Path::makeUnique(bool reuse_current, std::string* ErrMsg) { - if (reuse_current && !exists()) + bool Exists; + if (reuse_current && (fs::exists(path, Exists) || !Exists)) return false; // File doesn't exist already, just use it! // Append an XXXXXX pattern to the end of the file for use with mkstemp, diff --git a/lib/Support/Unix/Program.inc b/lib/Support/Unix/Program.inc index 17c3ba14bc2..1104bc7503e 100644 --- a/lib/Support/Unix/Program.inc +++ b/lib/Support/Unix/Program.inc @@ -17,6 +17,7 @@ //===----------------------------------------------------------------------===// #include +#include "llvm/Support/FileSystem.h" #include "Unix.h" #if HAVE_SYS_STAT_H #include @@ -355,7 +356,8 @@ Program::Wait(const sys::Path &path, // Following the POSIX convention for command-line tools (which posix_spawn // itself apparently does not), check to see if the failure was due to some // reason other than the file not existing, and return 126 in this case. - if (result == 127 && path.exists()) + bool Exists; + if (result == 127 && !llvm::sys::fs::exists(path.str(), Exists) && Exists) result = 126; #endif if (result == 127) { diff --git a/lib/Support/Windows/Path.inc b/lib/Support/Windows/Path.inc index cc68b9f3abc..9100739ae0d 100644 --- a/lib/Support/Windows/Path.inc +++ b/lib/Support/Windows/Path.inc @@ -694,7 +694,8 @@ Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const { if (fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { // If it doesn't exist, we're done. - if (!exists()) + bool Exists; + if (fs::exists(path, Exists) || !Exists) return false; char *pathname = reinterpret_cast(_alloca(path.length()+3)); @@ -868,7 +869,8 @@ CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg) { bool Path::makeUnique(bool reuse_current, std::string* ErrMsg) { - if (reuse_current && !exists()) + bool Exists; + if (reuse_current && (fs::exists(path, Exists) || !Exists)) return false; // File doesn't exist already, just use it! // Reserve space for -XXXXXX at the end. @@ -885,7 +887,7 @@ Path::makeUnique(bool reuse_current, std::string* ErrMsg) { if (++FCounter > 999999) FCounter = 0; path = FNBuffer; - } while (exists()); + } while (!fs::exists(path, Exists) && Exists); return false; } diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 3271f7c82f4..4fbd3bcbd9c 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -16,6 +16,7 @@ #include "llvm/Module.h" #include "llvm/Bitcode/Archive.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Format.h" @@ -310,7 +311,8 @@ bool buildPaths(bool checkExistence, std::string* ErrMsg) { if (!aPath.set(Members[i])) throw std::string("File member name invalid: ") + Members[i]; if (checkExistence) { - if (!aPath.exists()) + bool Exists; + if (sys::fs::exists(aPath.str(), Exists) || !Exists) throw std::string("File does not exist: ") + Members[i]; std::string Err; sys::PathWithStatus PwS(aPath); @@ -715,7 +717,8 @@ int main(int argc, char **argv) { throw std::string("Archive name invalid: ") + ArchiveName; // Create or open the archive object. - if (!ArchivePath.exists()) { + bool Exists; + if (llvm::sys::fs::exists(ArchivePath.str(), Exists) || !Exists) { // Produce a warning if we should and we're creating the archive if (!Create) errs() << argv[0] << ": creating " << ArchivePath.str() << "\n"; diff --git a/tools/llvm-ranlib/llvm-ranlib.cpp b/tools/llvm-ranlib/llvm-ranlib.cpp index 7f94c2413db..64f795f7f63 100644 --- a/tools/llvm-ranlib/llvm-ranlib.cpp +++ b/tools/llvm-ranlib/llvm-ranlib.cpp @@ -15,6 +15,7 @@ #include "llvm/Module.h" #include "llvm/Bitcode/Archive.h" #include "llvm/Support/CommandLine.h" +#include "llvm/Support/FileSystem.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/PrettyStackTrace.h" #include "llvm/Support/Format.h" @@ -69,7 +70,8 @@ int main(int argc, char **argv) { throw std::string("Archive name invalid: ") + ArchiveName; // Make sure it exists, we don't create empty archives - if (!ArchivePath.exists()) + bool Exists; + if (llvm::sys::fs::exists(ArchivePath.str(), Exists) || !Exists) throw std::string("Archive file does not exist"); std::string err_msg;