Author: zturner Date: Thu Jun 7 12:58:58 2018 New Revision: 334221 URL: http://llvm.org/viewvc/llvm-project?rev=334221&view=rev Log: [FileSystem] Split up the OpenFlags enumeration.
This breaks the OpenFlags enumeration into two separate enumerations: OpenFlags and CreationDisposition. The first controls the behavior of the API depending on whether or not the target file already exists, and is not a flags-based enum. The second controls more flags-like values. This yields a more easy to understand API, while also allowing flags to be passed to the openForRead api, where most of the values didn't make sense before. This also makes the apis more testable as it becomes easy to enumerate all the configurations which make sense, so I've added many new tests to exercise all the different values. Modified: clang-tools-extra/trunk/clang-move/tool/ClangMoveMain.cpp clang-tools-extra/trunk/clangd/tool/ClangdMain.cpp Modified: clang-tools-extra/trunk/clang-move/tool/ClangMoveMain.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-move/tool/ClangMoveMain.cpp?rev=334221&r1=334220&r2=334221&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-move/tool/ClangMoveMain.cpp (original) +++ clang-tools-extra/trunk/clang-move/tool/ClangMoveMain.cpp Thu Jun 7 12:58:58 2018 @@ -30,8 +30,8 @@ namespace { std::error_code CreateNewFile(const llvm::Twine &path) { int fd = 0; - if (std::error_code ec = - llvm::sys::fs::openFileForWrite(path, fd, llvm::sys::fs::F_Text)) + if (std::error_code ec = llvm::sys::fs::openFileForWrite( + path, fd, llvm::sys::fs::CD_CreateAlways, llvm::sys::fs::F_Text)) return ec; return llvm::sys::Process::SafelyCloseFileDescriptor(fd); Modified: clang-tools-extra/trunk/clangd/tool/ClangdMain.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/tool/ClangdMain.cpp?rev=334221&r1=334220&r2=334221&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/tool/ClangdMain.cpp (original) +++ clang-tools-extra/trunk/clangd/tool/ClangdMain.cpp Thu Jun 7 12:58:58 2018 @@ -159,7 +159,8 @@ int main(int argc, char *argv[]) { llvm::Optional<llvm::raw_fd_ostream> InputMirrorStream; if (!InputMirrorFile.empty()) { std::error_code EC; - InputMirrorStream.emplace(InputMirrorFile, /*ref*/ EC, llvm::sys::fs::F_RW); + InputMirrorStream.emplace(InputMirrorFile, /*ref*/ EC, + llvm::sys::fs::FA_Read | llvm::sys::fs::FA_Write); if (EC) { InputMirrorStream.reset(); llvm::errs() << "Error while opening an input mirror file: " @@ -174,7 +175,8 @@ int main(int argc, char *argv[]) { std::unique_ptr<trace::EventTracer> Tracer; if (auto *TraceFile = getenv("CLANGD_TRACE")) { std::error_code EC; - TraceStream.emplace(TraceFile, /*ref*/ EC, llvm::sys::fs::F_RW); + TraceStream.emplace(TraceFile, /*ref*/ EC, + llvm::sys::fs::FA_Read | llvm::sys::fs::FA_Write); if (EC) { TraceStream.reset(); llvm::errs() << "Error while opening trace file " << TraceFile << ": " _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits