Author: Abhina Sreeskantharajan Date: 2021-03-25T09:47:49-04:00 New Revision: c83cd8feef7eb8319131d968bb8c94fdc8dbb6a6
URL: https://github.com/llvm/llvm-project/commit/c83cd8feef7eb8319131d968bb8c94fdc8dbb6a6 DIFF: https://github.com/llvm/llvm-project/commit/c83cd8feef7eb8319131d968bb8c94fdc8dbb6a6.diff LOG: [NFC] Reordering parameters in getFile and getFileOrSTDIN In future patches I will be setting the IsText parameter frequently so I will refactor the args to be in the following order. I have removed the FileSize parameter because it is never used. ``` static ErrorOr<std::unique_ptr<MemoryBuffer>> getFile(const Twine &Filename, bool IsText = false, bool RequiresNullTerminator = true, bool IsVolatile = false); static ErrorOr<std::unique_ptr<MemoryBuffer>> getFileOrSTDIN(const Twine &Filename, bool IsText = false, bool RequiresNullTerminator = true); static ErrorOr<std::unique_ptr<MB>> getFileAux(const Twine &Filename, uint64_t MapSize, uint64_t Offset, bool IsText, bool RequiresNullTerminator, bool IsVolatile); static ErrorOr<std::unique_ptr<WritableMemoryBuffer>> getFile(const Twine &Filename, bool IsVolatile = false); ``` Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D99182 Added: Modified: clang/lib/Tooling/JSONCompilationDatabase.cpp clang/tools/arcmt-test/arcmt-test.cpp lld/COFF/Driver.cpp lld/COFF/DriverUtils.cpp lld/ELF/InputFiles.cpp lldb/source/Host/common/FileSystem.cpp lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp lldb/unittests/TestingSupport/TestUtilities.cpp llvm/include/llvm/Support/MemoryBuffer.h llvm/lib/BinaryFormat/Magic.cpp llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp llvm/lib/FuzzMutate/FuzzerCLI.cpp llvm/lib/IRReader/IRReader.cpp llvm/lib/LTO/LTOCodeGenerator.cpp llvm/lib/Object/Binary.cpp llvm/lib/ProfileData/GCOV.cpp llvm/lib/Support/MemoryBuffer.cpp llvm/lib/TableGen/Main.cpp llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp llvm/tools/lli/lli.cpp llvm/tools/llvm-ar/llvm-ar.cpp llvm/tools/llvm-cov/gcov.cpp llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp llvm/tools/llvm-pdbutil/InputFile.cpp llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp llvm/tools/llvm-rc/ResourceFileWriter.cpp llvm/tools/llvm-readobj/llvm-readobj.cpp llvm/tools/obj2yaml/obj2yaml.cpp llvm/tools/sanstats/sanstats.cpp llvm/utils/FileCheck/FileCheck.cpp Removed: ################################################################################ diff --git a/clang/lib/Tooling/JSONCompilationDatabase.cpp b/clang/lib/Tooling/JSONCompilationDatabase.cpp index 2d8847a7a327..97ba7e411fbb 100644 --- a/clang/lib/Tooling/JSONCompilationDatabase.cpp +++ b/clang/lib/Tooling/JSONCompilationDatabase.cpp @@ -198,7 +198,7 @@ JSONCompilationDatabase::loadFromFile(StringRef FilePath, JSONCommandLineSyntax Syntax) { // Don't mmap: if we're a long-lived process, the build system may overwrite. llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> DatabaseBuffer = - llvm::MemoryBuffer::getFile(FilePath, /*FileSize=*/-1, + llvm::MemoryBuffer::getFile(FilePath, /*IsText=*/false, /*RequiresNullTerminator=*/true, /*IsVolatile=*/true); if (std::error_code Result = DatabaseBuffer.getError()) { diff --git a/clang/tools/arcmt-test/arcmt-test.cpp b/clang/tools/arcmt-test/arcmt-test.cpp index 778587d4f111..26e123c59d59 100644 --- a/clang/tools/arcmt-test/arcmt-test.cpp +++ b/clang/tools/arcmt-test/arcmt-test.cpp @@ -207,15 +207,13 @@ static bool performTransformations(StringRef resourcesPath, static bool filesCompareEqual(StringRef fname1, StringRef fname2) { using namespace llvm; - ErrorOr<std::unique_ptr<MemoryBuffer>> file1 = MemoryBuffer::getFile( - fname1, /*FileSize=*/-1, /*RequiresNullTerminator=*/true, - /*IsVolatile=*/false, /*IsText=*/true); + ErrorOr<std::unique_ptr<MemoryBuffer>> file1 = + MemoryBuffer::getFile(fname1, /*IsText=*/true); if (!file1) return false; - ErrorOr<std::unique_ptr<MemoryBuffer>> file2 = MemoryBuffer::getFile( - fname2, /*FileSize=*/-1, /*RequiresNullTerminator=*/true, - /*IsVolatile=*/false, /*IsText=*/true); + ErrorOr<std::unique_ptr<MemoryBuffer>> file2 = + MemoryBuffer::getFile(fname2, /*IsText=*/true); if (!file2) return false; @@ -244,9 +242,7 @@ static bool verifyTransformedFiles(ArrayRef<std::string> resultFiles) { if (RemappingsFile.empty()) inputBuf = MemoryBuffer::getSTDIN(); else - inputBuf = MemoryBuffer::getFile(RemappingsFile, /*FileSize=*/-1, - /*RequiresNullTerminator=*/true, - /*IsVolatile=*/false, /*IsText=*/true); + inputBuf = MemoryBuffer::getFile(RemappingsFile, /*IsText=*/true); if (!inputBuf) { errs() << "error: could not read remappings input\n"; return true; diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp index c5c8d5c0cf90..cf96ecb731a2 100644 --- a/lld/COFF/Driver.cpp +++ b/lld/COFF/Driver.cpp @@ -157,9 +157,8 @@ static std::future<MBErrPair> createFutureForFile(std::string path) { auto strategy = std::launch::deferred; #endif return std::async(strategy, [=]() { - auto mbOrErr = MemoryBuffer::getFile(path, - /*FileSize*/ -1, - /*RequiresNullTerminator*/ false); + auto mbOrErr = MemoryBuffer::getFile(path, /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (!mbOrErr) return MBErrPair{nullptr, mbOrErr.getError()}; return MBErrPair{std::move(*mbOrErr), std::error_code()}; @@ -829,7 +828,7 @@ static void createImportLibrary(bool asLib) { // If the import library already exists, replace it only if the contents // have changed. ErrorOr<std::unique_ptr<MemoryBuffer>> oldBuf = MemoryBuffer::getFile( - path, /*FileSize*/ -1, /*RequiresNullTerminator*/ false); + path, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (!oldBuf) { handleError(writeImportLibrary(libName, path, exports, config->machine, config->mingw)); @@ -849,7 +848,7 @@ static void createImportLibrary(bool asLib) { } std::unique_ptr<MemoryBuffer> newBuf = check(MemoryBuffer::getFile( - tmpName, /*FileSize*/ -1, /*RequiresNullTerminator*/ false)); + tmpName, /*IsText=*/false, /*RequiresNullTerminator=*/false)); if ((*oldBuf)->getBuffer() != newBuf->getBuffer()) { oldBuf->reset(); handleError(errorCodeToError(sys::fs::rename(tmpName, path))); @@ -859,8 +858,11 @@ static void createImportLibrary(bool asLib) { } static void parseModuleDefs(StringRef path) { - std::unique_ptr<MemoryBuffer> mb = CHECK( - MemoryBuffer::getFile(path, -1, false, true), "could not open " + path); + std::unique_ptr<MemoryBuffer> mb = + CHECK(MemoryBuffer::getFile(path, /*IsText=*/false, + /*RequiresNullTerminator=*/false, + /*IsVolatile=*/true), + "could not open " + path); COFFModuleDefinition m = check(parseCOFFModuleDefinition( mb->getMemBufferRef(), config->machine, config->mingw)); @@ -948,8 +950,11 @@ static void parseOrderFile(StringRef arg) { // Open a file. StringRef path = arg.substr(1); - std::unique_ptr<MemoryBuffer> mb = CHECK( - MemoryBuffer::getFile(path, -1, false, true), "could not open " + path); + std::unique_ptr<MemoryBuffer> mb = + CHECK(MemoryBuffer::getFile(path, /*IsText=*/false, + /*RequiresNullTerminator=*/false, + /*IsVolatile=*/true), + "could not open " + path); // Parse a file. An order file contains one symbol per line. // All symbols that were not present in a given order file are @@ -973,8 +978,11 @@ static void parseOrderFile(StringRef arg) { } static void parseCallGraphFile(StringRef path) { - std::unique_ptr<MemoryBuffer> mb = CHECK( - MemoryBuffer::getFile(path, -1, false, true), "could not open " + path); + std::unique_ptr<MemoryBuffer> mb = + CHECK(MemoryBuffer::getFile(path, /*IsText=*/false, + /*RequiresNullTerminator=*/false, + /*IsVolatile=*/true), + "could not open " + path); // Build a map from symbol name to section. DenseMap<StringRef, Symbol *> map; diff --git a/lld/COFF/DriverUtils.cpp b/lld/COFF/DriverUtils.cpp index 19964428050b..1e8cbe8e2b17 100644 --- a/lld/COFF/DriverUtils.cpp +++ b/lld/COFF/DriverUtils.cpp @@ -350,7 +350,7 @@ class TemporaryFile { // is called (you cannot remove an opened file on Windows.) std::unique_ptr<MemoryBuffer> getMemoryBuffer() { // IsVolatile=true forces MemoryBuffer to not use mmap(). - return CHECK(MemoryBuffer::getFile(path, /*FileSize=*/-1, + return CHECK(MemoryBuffer::getFile(path, /*IsText=*/false, /*RequiresNullTerminator=*/false, /*IsVolatile=*/true), "could not open " + path); diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index 6cf668d1b264..1f1ff22247ed 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -115,7 +115,8 @@ Optional<MemoryBufferRef> elf::readFile(StringRef path) { log(path); config->dependencyFiles.insert(llvm::CachedHashString(path)); - auto mbOrErr = MemoryBuffer::getFile(path, -1, false); + auto mbOrErr = MemoryBuffer::getFile(path, /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (auto ec = mbOrErr.getError()) { error("cannot open " + path + ": " + ec.message()); return None; diff --git a/lldb/source/Host/common/FileSystem.cpp b/lldb/source/Host/common/FileSystem.cpp index 64ecf27858ab..9076188168b6 100644 --- a/lldb/source/Host/common/FileSystem.cpp +++ b/lldb/source/Host/common/FileSystem.cpp @@ -307,7 +307,7 @@ FileSystem::CreateDataBuffer(const llvm::Twine &path, uint64_t size, std::unique_ptr<llvm::WritableMemoryBuffer> buffer; if (size == 0) { auto buffer_or_error = - llvm::WritableMemoryBuffer::getFile(*external_path, -1, is_volatile); + llvm::WritableMemoryBuffer::getFile(*external_path, is_volatile); if (!buffer_or_error) return nullptr; buffer = std::move(*buffer_or_error); diff --git a/lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp b/lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp index 35a823e9a28f..cb7bbeeca054 100644 --- a/lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp +++ b/lldb/source/Plugins/ObjectFile/PDB/ObjectFilePDB.cpp @@ -173,7 +173,7 @@ ObjectFilePDB::loadPDBFile(std::string PdbPath, if (ec || magic != llvm::file_magic::pdb) return nullptr; llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> ErrorOrBuffer = - llvm::MemoryBuffer::getFile(PdbPath, /*FileSize=*/-1, + llvm::MemoryBuffer::getFile(PdbPath, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (!ErrorOrBuffer) return nullptr; diff --git a/lldb/unittests/TestingSupport/TestUtilities.cpp b/lldb/unittests/TestingSupport/TestUtilities.cpp index 34f49e5862a7..86f3d1a7dfa7 100644 --- a/lldb/unittests/TestingSupport/TestUtilities.cpp +++ b/lldb/unittests/TestingSupport/TestUtilities.cpp @@ -38,8 +38,8 @@ llvm::Expected<TestFile> TestFile::fromYaml(llvm::StringRef Yaml) { llvm::Expected<TestFile> TestFile::fromYamlFile(const llvm::Twine &Name) { auto BufferOrError = - llvm::MemoryBuffer::getFile(GetInputFilePath(Name), /*FileSize*/ -1, - /*RequiresNullTerminator*/ false); + llvm::MemoryBuffer::getFile(GetInputFilePath(Name), /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (!BufferOrError) return llvm::errorCodeToError(BufferOrError.getError()); return fromYaml(BufferOrError.get()->getBuffer()); diff --git a/llvm/include/llvm/Support/MemoryBuffer.h b/llvm/include/llvm/Support/MemoryBuffer.h index eccb7ee01e6f..c9ceeedbf3dc 100644 --- a/llvm/include/llvm/Support/MemoryBuffer.h +++ b/llvm/include/llvm/Support/MemoryBuffer.h @@ -75,20 +75,17 @@ class MemoryBuffer { virtual StringRef getBufferIdentifier() const { return "Unknown buffer"; } /// Open the specified file as a MemoryBuffer, returning a new MemoryBuffer - /// if successful, otherwise returning null. If FileSize is specified, this - /// means that the client knows that the file exists and that it has the - /// specified size. + /// if successful, otherwise returning null. + /// + /// \param IsText Set to true to indicate that the file should be read in + /// text mode. /// /// \param IsVolatile Set to true to indicate that the contents of the file /// can change outside the user's control, e.g. when libclang tries to parse /// while the user is editing/updating the file or if the file is on an NFS. - /// - /// \param IsText Set to true to indicate that the file should be read in - /// text mode. static ErrorOr<std::unique_ptr<MemoryBuffer>> - getFile(const Twine &Filename, int64_t FileSize = -1, - bool RequiresNullTerminator = true, bool IsVolatile = false, - bool IsText = false); + getFile(const Twine &Filename, bool IsText = false, + bool RequiresNullTerminator = true, bool IsVolatile = false); /// Read all of the specified file into a MemoryBuffer as a stream /// (i.e. until EOF reached). This is useful for special files that @@ -133,8 +130,8 @@ class MemoryBuffer { /// Open the specified file as a MemoryBuffer, or open stdin if the Filename /// is "-". static ErrorOr<std::unique_ptr<MemoryBuffer>> - getFileOrSTDIN(const Twine &Filename, int64_t FileSize = -1, - bool RequiresNullTerminator = true, bool IsText = false); + getFileOrSTDIN(const Twine &Filename, bool IsText = false, + bool RequiresNullTerminator = true); /// Map a subrange of the specified file as a MemoryBuffer. static ErrorOr<std::unique_ptr<MemoryBuffer>> @@ -184,8 +181,7 @@ class WritableMemoryBuffer : public MemoryBuffer { } static ErrorOr<std::unique_ptr<WritableMemoryBuffer>> - getFile(const Twine &Filename, int64_t FileSize = -1, - bool IsVolatile = false); + getFile(const Twine &Filename, bool IsVolatile = false); /// Map a subrange of the specified file as a WritableMemoryBuffer. static ErrorOr<std::unique_ptr<WritableMemoryBuffer>> diff --git a/llvm/lib/BinaryFormat/Magic.cpp b/llvm/lib/BinaryFormat/Magic.cpp index 61b1504e59b0..591da4877479 100644 --- a/llvm/lib/BinaryFormat/Magic.cpp +++ b/llvm/lib/BinaryFormat/Magic.cpp @@ -223,7 +223,8 @@ file_magic llvm::identify_magic(StringRef Magic) { } std::error_code llvm::identify_magic(const Twine &Path, file_magic &Result) { - auto FileOrError = MemoryBuffer::getFile(Path, -1LL, false); + auto FileOrError = MemoryBuffer::getFile(Path, /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (!FileOrError) return FileOrError.getError(); diff --git a/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp b/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp index 5d7946cdc2f7..7212a0e65035 100644 --- a/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp @@ -83,7 +83,7 @@ Error NativeSession::createFromPdb(std::unique_ptr<MemoryBuffer> Buffer, static Expected<std::unique_ptr<PDBFile>> loadPdbFile(StringRef PdbPath, std::unique_ptr<BumpPtrAllocator> &Allocator) { ErrorOr<std::unique_ptr<MemoryBuffer>> ErrorOrBuffer = - MemoryBuffer::getFile(PdbPath, /*FileSize=*/-1, + MemoryBuffer::getFile(PdbPath, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (!ErrorOrBuffer) return make_error<RawError>(ErrorOrBuffer.getError()); diff --git a/llvm/lib/FuzzMutate/FuzzerCLI.cpp b/llvm/lib/FuzzMutate/FuzzerCLI.cpp index be0d5bfcab46..1527062cfd97 100644 --- a/llvm/lib/FuzzMutate/FuzzerCLI.cpp +++ b/llvm/lib/FuzzMutate/FuzzerCLI.cpp @@ -153,7 +153,7 @@ int llvm::runFuzzerOnInputs(int ArgC, char *ArgV[], FuzzerTestFun TestOne, continue; } - auto BufOrErr = MemoryBuffer::getFile(Arg, /*FileSize-*/ -1, + auto BufOrErr = MemoryBuffer::getFile(Arg, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = BufOrErr.getError()) { errs() << "Error reading file: " << Arg << ": " << EC.message() << "\n"; diff --git a/llvm/lib/IRReader/IRReader.cpp b/llvm/lib/IRReader/IRReader.cpp index cc3b20681034..b645e0b766a9 100644 --- a/llvm/lib/IRReader/IRReader.cpp +++ b/llvm/lib/IRReader/IRReader.cpp @@ -92,9 +92,7 @@ std::unique_ptr<Module> llvm::parseIRFile(StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, DataLayoutCallbackTy DataLayoutCallback) { ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = - MemoryBuffer::getFileOrSTDIN(Filename, /*FileSize=*/-1, - /*RequiresNullTerminator=*/true, - /*IsText=*/true); + MemoryBuffer::getFileOrSTDIN(Filename, /*IsText=*/true); if (std::error_code EC = FileOrErr.getError()) { Err = SMDiagnostic(Filename, SourceMgr::DK_Error, "Could not open input file: " + EC.message()); diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp index 9634014dad6a..8e5587051c26 100644 --- a/llvm/lib/LTO/LTOCodeGenerator.cpp +++ b/llvm/lib/LTO/LTOCodeGenerator.cpp @@ -285,8 +285,8 @@ LTOCodeGenerator::compileOptimized() { return nullptr; // read .o file into memory buffer - ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr = - MemoryBuffer::getFile(name, -1, false); + ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr = MemoryBuffer::getFile( + name, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = BufferOrErr.getError()) { emitError(EC.message()); sys::fs::remove(NativeObjectPath); diff --git a/llvm/lib/Object/Binary.cpp b/llvm/lib/Object/Binary.cpp index e741cbba2882..71c044630223 100644 --- a/llvm/lib/Object/Binary.cpp +++ b/llvm/lib/Object/Binary.cpp @@ -97,7 +97,7 @@ Expected<std::unique_ptr<Binary>> object::createBinary(MemoryBufferRef Buffer, Expected<OwningBinary<Binary>> object::createBinary(StringRef Path, LLVMContext *Context, bool InitContent) { ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = - MemoryBuffer::getFileOrSTDIN(Path, /*FileSize=*/-1, + MemoryBuffer::getFileOrSTDIN(Path, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = FileOrErr.getError()) return errorCodeToError(EC); diff --git a/llvm/lib/ProfileData/GCOV.cpp b/llvm/lib/ProfileData/GCOV.cpp index 3332a898603b..f24c4b0cf9b5 100644 --- a/llvm/lib/ProfileData/GCOV.cpp +++ b/llvm/lib/ProfileData/GCOV.cpp @@ -564,7 +564,7 @@ class LineConsumer { // Open source files without requiring a NUL terminator. The concurrent // modification may nullify the NUL terminator condition. ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr = - MemoryBuffer::getFileOrSTDIN(Filename, -1, + MemoryBuffer::getFileOrSTDIN(Filename, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = BufferOrErr.getError()) { errs() << Filename << ": " << EC.message() << "\n"; diff --git a/llvm/lib/Support/MemoryBuffer.cpp b/llvm/lib/Support/MemoryBuffer.cpp index 955bf113fd79..1d75f0be1ca6 100644 --- a/llvm/lib/Support/MemoryBuffer.cpp +++ b/llvm/lib/Support/MemoryBuffer.cpp @@ -105,9 +105,8 @@ class MemoryBufferMem : public MB { template <typename MB> static ErrorOr<std::unique_ptr<MB>> -getFileAux(const Twine &Filename, int64_t FileSize, uint64_t MapSize, - uint64_t Offset, bool RequiresNullTerminator, bool IsVolatile, - bool IsText); +getFileAux(const Twine &Filename, uint64_t MapSize, uint64_t Offset, + bool IsText, bool RequiresNullTerminator, bool IsVolatile); std::unique_ptr<MemoryBuffer> MemoryBuffer::getMemBuffer(StringRef InputData, StringRef BufferName, @@ -141,21 +140,22 @@ MemoryBuffer::getMemBufferCopy(StringRef InputData, const Twine &BufferName) { } ErrorOr<std::unique_ptr<MemoryBuffer>> -MemoryBuffer::getFileOrSTDIN(const Twine &Filename, int64_t FileSize, - bool RequiresNullTerminator, bool IsText) { +MemoryBuffer::getFileOrSTDIN(const Twine &Filename, bool IsText, + bool RequiresNullTerminator) { SmallString<256> NameBuf; StringRef NameRef = Filename.toStringRef(NameBuf); if (NameRef == "-") return getSTDIN(); - return getFile(Filename, FileSize, RequiresNullTerminator, false, IsText); + return getFile(Filename, IsText, RequiresNullTerminator, + /*IsVolatile=*/false); } ErrorOr<std::unique_ptr<MemoryBuffer>> MemoryBuffer::getFileSlice(const Twine &FilePath, uint64_t MapSize, uint64_t Offset, bool IsVolatile) { - return getFileAux<MemoryBuffer>(FilePath, -1, MapSize, Offset, false, - IsVolatile, false); + return getFileAux<MemoryBuffer>(FilePath, MapSize, Offset, /*IsText=*/false, + /*RequiresNullTerminator=*/false, IsVolatile); } //===----------------------------------------------------------------------===// @@ -242,11 +242,10 @@ getMemoryBufferForStream(sys::fs::file_t FD, const Twine &BufferName) { } ErrorOr<std::unique_ptr<MemoryBuffer>> -MemoryBuffer::getFile(const Twine &Filename, int64_t FileSize, - bool RequiresNullTerminator, bool IsVolatile, - bool IsText) { - return getFileAux<MemoryBuffer>(Filename, FileSize, FileSize, 0, - RequiresNullTerminator, IsVolatile, IsText); +MemoryBuffer::getFile(const Twine &Filename, bool IsText, + bool RequiresNullTerminator, bool IsVolatile) { + return getFileAux<MemoryBuffer>(Filename, /*MapSize=*/-1, /*Offset=*/0, + IsText, RequiresNullTerminator, IsVolatile); } template <typename MB> @@ -257,33 +256,32 @@ getOpenFileImpl(sys::fs::file_t FD, const Twine &Filename, uint64_t FileSize, template <typename MB> static ErrorOr<std::unique_ptr<MB>> -getFileAux(const Twine &Filename, int64_t FileSize, uint64_t MapSize, - uint64_t Offset, bool RequiresNullTerminator, bool IsVolatile, - bool IsText) { +getFileAux(const Twine &Filename, uint64_t MapSize, uint64_t Offset, + bool IsText, bool RequiresNullTerminator, bool IsVolatile) { Expected<sys::fs::file_t> FDOrErr = sys::fs::openNativeFileForRead( Filename, IsText ? sys::fs::OF_Text : sys::fs::OF_None); if (!FDOrErr) return errorToErrorCode(FDOrErr.takeError()); sys::fs::file_t FD = *FDOrErr; - auto Ret = getOpenFileImpl<MB>(FD, Filename, FileSize, MapSize, Offset, + auto Ret = getOpenFileImpl<MB>(FD, Filename, /*FileSize=*/-1, MapSize, Offset, RequiresNullTerminator, IsVolatile); sys::fs::closeFile(FD); return Ret; } ErrorOr<std::unique_ptr<WritableMemoryBuffer>> -WritableMemoryBuffer::getFile(const Twine &Filename, int64_t FileSize, - bool IsVolatile) { - return getFileAux<WritableMemoryBuffer>(Filename, FileSize, FileSize, 0, - /*RequiresNullTerminator*/ false, - IsVolatile, false); +WritableMemoryBuffer::getFile(const Twine &Filename, bool IsVolatile) { + return getFileAux<WritableMemoryBuffer>( + Filename, /*MapSize=*/-1, /*Offset=*/0, /*IsText=*/false, + /*RequiresNullTerminator=*/false, IsVolatile); } ErrorOr<std::unique_ptr<WritableMemoryBuffer>> WritableMemoryBuffer::getFileSlice(const Twine &Filename, uint64_t MapSize, uint64_t Offset, bool IsVolatile) { - return getFileAux<WritableMemoryBuffer>(Filename, -1, MapSize, Offset, false, - IsVolatile, false); + return getFileAux<WritableMemoryBuffer>( + Filename, MapSize, Offset, /*IsText=*/false, + /*RequiresNullTerminator=*/false, IsVolatile); } std::unique_ptr<WritableMemoryBuffer> diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp index 289af936cf65..0b1024648b66 100644 --- a/llvm/lib/TableGen/Main.cpp +++ b/llvm/lib/TableGen/Main.cpp @@ -93,9 +93,7 @@ int llvm::TableGenMain(const char *argv0, TableGenMainFn *MainFn) { Records.startTimer("Parse, build records"); ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = - MemoryBuffer::getFileOrSTDIN(InputFilename, /*FileSize=*/-1, - /*RequiresNullTerminator=*/true, - /*IsText=*/true); + MemoryBuffer::getFileOrSTDIN(InputFilename, /*IsText=*/true); if (std::error_code EC = FileOrErr.getError()) return reportError(argv0, "Could not open input file '" + InputFilename + "': " + EC.message() + "\n"); @@ -139,9 +137,8 @@ int llvm::TableGenMain(const char *argv0, TableGenMainFn *MainFn) { // Only updates the real output file if there are any diff erences. // This prevents recompilation of all the files depending on it if there // aren't any. - if (auto ExistingOrErr = MemoryBuffer::getFile( - OutputFilename, /*FileSize=*/-1, /*RequiresNullTerminator=*/true, - /*IsVolatile=*/false, /*IsText=*/true)) + if (auto ExistingOrErr = + MemoryBuffer::getFile(OutputFilename, /*IsText=*/true)) if (std::move(ExistingOrErr.get())->getBuffer() == Out.str()) WriteFile = false; } diff --git a/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp b/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp index f3904b921e60..80d3033244de 100644 --- a/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp +++ b/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp @@ -112,8 +112,8 @@ static void doList(opt::InputArgList& Args) { std::unique_ptr<MemoryBuffer> B; for (auto *Arg : Args.filtered(OPT_INPUT)) { // Create or open the archive object. - ErrorOr<std::unique_ptr<MemoryBuffer>> MaybeBuf = - MemoryBuffer::getFile(Arg->getValue(), -1, false); + ErrorOr<std::unique_ptr<MemoryBuffer>> MaybeBuf = MemoryBuffer::getFile( + Arg->getValue(), /*IsText=*/false, /*RequiresNullTerminator=*/false); fatalOpenError(errorCodeToError(MaybeBuf.getError()), Arg->getValue()); if (identify_magic(MaybeBuf.get()->getBuffer()) == file_magic::archive) { @@ -339,8 +339,8 @@ int llvm::libDriverMain(ArrayRef<const char *> ArgsArr) { continue; // Open a file. - ErrorOr<std::unique_ptr<MemoryBuffer>> MOrErr = - MemoryBuffer::getFile(Path, -1, false); + ErrorOr<std::unique_ptr<MemoryBuffer>> MOrErr = MemoryBuffer::getFile( + Path, /*IsText=*/false, /*RequiresNullTerminator=*/false); fatalOpenError(errorCodeToError(MOrErr.getError()), Path); MemoryBufferRef MBRef = (*MOrErr)->getMemBufferRef(); diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp index 1bfd4b82632e..782bc745e4a9 100644 --- a/llvm/tools/lli/lli.cpp +++ b/llvm/tools/lli/lli.cpp @@ -327,7 +327,8 @@ class LLIObjectCache : public ObjectCache { return nullptr; // Load the object from the cache filename ErrorOr<std::unique_ptr<MemoryBuffer>> IRObjectBuffer = - MemoryBuffer::getFile(CacheName, -1, false); + MemoryBuffer::getFile(CacheName, /*IsText=*/false, + /*RequiresNullTerminator=*/false); // If the file isn't there, that's OK. if (!IRObjectBuffer) return nullptr; diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 4c26c8cad3fa..4991e51a0f75 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/tools/llvm-ar/llvm-ar.cpp @@ -270,7 +270,8 @@ static void getArchive() { } static object::Archive &readLibrary(const Twine &Library) { - auto BufOrErr = MemoryBuffer::getFile(Library, -1, false); + auto BufOrErr = MemoryBuffer::getFile(Library, /*IsText=*/false, + /*RequiresNullTerminator=*/false); failIfError(BufOrErr.getError(), "could not open library " + Library); ArchiveBuffers.push_back(std::move(*BufOrErr)); auto LibOrErr = @@ -995,8 +996,8 @@ static void performOperation(ArchiveOperation Operation, static int performOperation(ArchiveOperation Operation, std::vector<NewArchiveMember> *NewMembers) { // Create or open the archive object. - ErrorOr<std::unique_ptr<MemoryBuffer>> Buf = - MemoryBuffer::getFile(ArchiveName, -1, false); + ErrorOr<std::unique_ptr<MemoryBuffer>> Buf = MemoryBuffer::getFile( + ArchiveName, /*IsText=*/false, /*RequiresNullTerminator=*/false); std::error_code EC = Buf.getError(); if (EC && EC != errc::no_such_file_or_directory) fail("unable to open '" + ArchiveName + "': " + EC.message()); diff --git a/llvm/tools/llvm-cov/gcov.cpp b/llvm/tools/llvm-cov/gcov.cpp index d42e7cd3b551..9a1ebebc87fc 100644 --- a/llvm/tools/llvm-cov/gcov.cpp +++ b/llvm/tools/llvm-cov/gcov.cpp @@ -46,7 +46,8 @@ static void reportCoverage(StringRef SourceFile, StringRef ObjectDir, // Open .gcda and .gcda without requiring a NUL terminator. The concurrent // modification may nullify the NUL terminator condition. ErrorOr<std::unique_ptr<MemoryBuffer>> GCNO_Buff = - MemoryBuffer::getFileOrSTDIN(GCNO, -1, /*RequiresNullTerminator=*/false); + MemoryBuffer::getFileOrSTDIN(GCNO, /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (std::error_code EC = GCNO_Buff.getError()) { errs() << GCNO << ": " << EC.message() << "\n"; return; @@ -58,7 +59,8 @@ static void reportCoverage(StringRef SourceFile, StringRef ObjectDir, } ErrorOr<std::unique_ptr<MemoryBuffer>> GCDA_Buff = - MemoryBuffer::getFileOrSTDIN(GCDA, -1, /*RequiresNullTerminator=*/false); + MemoryBuffer::getFileOrSTDIN(GCDA, /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (std::error_code EC = GCDA_Buff.getError()) { if (EC != errc::no_such_file_or_directory) { errs() << GCDA << ": " << EC.message() << "\n"; diff --git a/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp b/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp index 021736418419..f16b4a17105c 100644 --- a/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp +++ b/llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp @@ -147,7 +147,7 @@ static Error processFileList() { std::tie(FileName, DirName) = StringRef(FileList).rsplit(","); ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = - MemoryBuffer::getFileOrSTDIN(FileName, /*FileSize=*/-1, + MemoryBuffer::getFileOrSTDIN(FileName, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = FileOrErr.getError()) return createFileError(FileName, errorCodeToError(EC)); diff --git a/llvm/tools/llvm-pdbutil/InputFile.cpp b/llvm/tools/llvm-pdbutil/InputFile.cpp index b316882de64d..40b35625b6f8 100644 --- a/llvm/tools/llvm-pdbutil/InputFile.cpp +++ b/llvm/tools/llvm-pdbutil/InputFile.cpp @@ -288,7 +288,8 @@ Expected<InputFile> InputFile::open(StringRef Path, bool AllowUnknownFile) { formatv("File {0} is not a supported file type", Path), inconvertibleErrorCode()); - auto Result = MemoryBuffer::getFile(Path, -1LL, false); + auto Result = MemoryBuffer::getFile(Path, /*IsText=*/false, + /*RequiresNullTerminator=*/false); if (!Result) return make_error<StringError>( formatv("File {0} could not be opened", Path), Result.getError()); diff --git a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp index 19f4880ab5eb..f70558a5ab74 100644 --- a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp +++ b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp @@ -748,7 +748,7 @@ static ExitOnError ExitOnErr; static void yamlToPdb(StringRef Path) { BumpPtrAllocator Allocator; ErrorOr<std::unique_ptr<MemoryBuffer>> ErrorOrBuffer = - MemoryBuffer::getFileOrSTDIN(Path, /*FileSize=*/-1, + MemoryBuffer::getFileOrSTDIN(Path, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (ErrorOrBuffer.getError()) { diff --git a/llvm/tools/llvm-rc/ResourceFileWriter.cpp b/llvm/tools/llvm-rc/ResourceFileWriter.cpp index 553bb754aea0..2856fa8fe08a 100644 --- a/llvm/tools/llvm-rc/ResourceFileWriter.cpp +++ b/llvm/tools/llvm-rc/ResourceFileWriter.cpp @@ -1524,14 +1524,16 @@ ResourceFileWriter::loadFile(StringRef File) const { // properly though, so if using that to append paths below, this early // exception case could be removed.) if (sys::path::has_root_directory(File)) - return errorOrToExpected(MemoryBuffer::getFile(File, -1, false)); + return errorOrToExpected(MemoryBuffer::getFile( + File, /*IsText=*/false, /*RequiresNullTerminator=*/false)); // 1. The current working directory. sys::fs::current_path(Cwd); Path.assign(Cwd.begin(), Cwd.end()); sys::path::append(Path, File); if (sys::fs::exists(Path)) - return errorOrToExpected(MemoryBuffer::getFile(Path, -1, false)); + return errorOrToExpected(MemoryBuffer::getFile( + Path, /*IsText=*/false, /*RequiresNullTerminator=*/false)); // 2. The directory of the input resource file, if it is diff erent from the // current working directory. @@ -1539,19 +1541,22 @@ ResourceFileWriter::loadFile(StringRef File) const { Path.assign(InputFileDir.begin(), InputFileDir.end()); sys::path::append(Path, File); if (sys::fs::exists(Path)) - return errorOrToExpected(MemoryBuffer::getFile(Path, -1, false)); + return errorOrToExpected(MemoryBuffer::getFile( + Path, /*IsText=*/false, /*RequiresNullTerminator=*/false)); // 3. All of the include directories specified on the command line. for (StringRef ForceInclude : Params.Include) { Path.assign(ForceInclude.begin(), ForceInclude.end()); sys::path::append(Path, File); if (sys::fs::exists(Path)) - return errorOrToExpected(MemoryBuffer::getFile(Path, -1, false)); + return errorOrToExpected(MemoryBuffer::getFile( + Path, /*IsText=*/false, /*RequiresNullTerminator=*/false)); } if (auto Result = llvm::sys::Process::FindInEnvPath("INCLUDE", File, Params.NoInclude)) - return errorOrToExpected(MemoryBuffer::getFile(*Result, -1, false)); + return errorOrToExpected(MemoryBuffer::getFile( + *Result, /*IsText=*/false, /*RequiresNullTerminator=*/false)); return make_error<StringError>("error : file not found : " + Twine(File), inconvertibleErrorCode()); diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 5d6ee25961f2..7db52e63da47 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -653,7 +653,7 @@ static void dumpWindowsResourceFile(WindowsResource *WinRes, /// Opens \a File and dumps it. static void dumpInput(StringRef File, ScopedPrinter &Writer) { ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = - MemoryBuffer::getFileOrSTDIN(File, /*FileSize=*/-1, + MemoryBuffer::getFileOrSTDIN(File, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = FileOrErr.getError()) return reportError(errorCodeToError(EC), File); diff --git a/llvm/tools/obj2yaml/obj2yaml.cpp b/llvm/tools/obj2yaml/obj2yaml.cpp index da70450503f3..ff6b470f5244 100644 --- a/llvm/tools/obj2yaml/obj2yaml.cpp +++ b/llvm/tools/obj2yaml/obj2yaml.cpp @@ -36,7 +36,7 @@ static Error dumpObject(const ObjectFile &Obj) { static Error dumpInput(StringRef File) { ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = - MemoryBuffer::getFileOrSTDIN(File, /*FileSize=*/-1, + MemoryBuffer::getFileOrSTDIN(File, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (std::error_code EC = FileOrErr.getError()) return errorCodeToError(EC); diff --git a/llvm/tools/sanstats/sanstats.cpp b/llvm/tools/sanstats/sanstats.cpp index 1f154e08f243..54ad35b2ace6 100644 --- a/llvm/tools/sanstats/sanstats.cpp +++ b/llvm/tools/sanstats/sanstats.cpp @@ -125,8 +125,8 @@ int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "Sanitizer Statistics Processing Tool"); - ErrorOr<std::unique_ptr<MemoryBuffer>> MBOrErr = - MemoryBuffer::getFile(ClInputFile, -1, false); + ErrorOr<std::unique_ptr<MemoryBuffer>> MBOrErr = MemoryBuffer::getFile( + ClInputFile, /*IsText=*/false, /*RequiresNullTerminator=*/false); if (!MBOrErr) { errs() << argv[0] << ": " << ClInputFile << ": " << MBOrErr.getError().message() << '\n'; diff --git a/llvm/utils/FileCheck/FileCheck.cpp b/llvm/utils/FileCheck/FileCheck.cpp index 12365e03db55..c1bb97faac50 100644 --- a/llvm/utils/FileCheck/FileCheck.cpp +++ b/llvm/utils/FileCheck/FileCheck.cpp @@ -821,9 +821,7 @@ int main(int argc, char **argv) { // Read the expected strings from the check file. ErrorOr<std::unique_ptr<MemoryBuffer>> CheckFileOrErr = - MemoryBuffer::getFileOrSTDIN(CheckFilename, /*FileSize=*/-1, - /*RequiresNullTerminator=*/true, - /*IsText=*/true); + MemoryBuffer::getFileOrSTDIN(CheckFilename, /*IsText=*/true); if (std::error_code EC = CheckFileOrErr.getError()) { errs() << "Could not open check file '" << CheckFilename << "': " << EC.message() << '\n'; @@ -845,9 +843,7 @@ int main(int argc, char **argv) { // Open the file to check and add it to SourceMgr. ErrorOr<std::unique_ptr<MemoryBuffer>> InputFileOrErr = - MemoryBuffer::getFileOrSTDIN(InputFilename, /*FileSize=*/-1, - /*RequiresNullTerminator=*/true, - /*IsText=*/true); + MemoryBuffer::getFileOrSTDIN(InputFilename, /*IsText=*/true); if (InputFilename == "-") InputFilename = "<stdin>"; // Overwrite for improved diagnostic messages if (std::error_code EC = InputFileOrErr.getError()) { _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits