-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[SystemZ][z/OS] Open text files in text mode #109972
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-clang-driver @llvm/pr-subscribers-llvm-binary-utilities Author: Abhina Sree (abhina-sree) ChangesThis patch continues the work that was started here https://reviews.llvm.org/D99426 to correctly open text files in text mode. Full diff: https://github.com/llvm/llvm-project/pull/109972.diff 7 Files Affected:
diff --git a/clang/lib/Driver/OffloadBundler.cpp b/clang/lib/Driver/OffloadBundler.cpp
index aaa4fdf03be1eb..12378f437c764f 100644
--- a/clang/lib/Driver/OffloadBundler.cpp
+++ b/clang/lib/Driver/OffloadBundler.cpp
@@ -1192,7 +1192,7 @@ Error OffloadBundler::ListBundleIDsInFile(
StringRef InputFileName, const OffloadBundlerConfig &BundlerConfig) {
// Open Input file.
ErrorOr<std::unique_ptr<MemoryBuffer>> CodeOrErr =
- MemoryBuffer::getFileOrSTDIN(InputFileName);
+ MemoryBuffer::getFileOrSTDIN(InputFileName, /*IsText=*/true);
if (std::error_code EC = CodeOrErr.getError())
return createFileError(InputFileName, EC);
@@ -1324,7 +1324,7 @@ Error OffloadBundler::BundleFiles() {
InputBuffers.reserve(BundlerConfig.InputFileNames.size());
for (auto &I : BundlerConfig.InputFileNames) {
ErrorOr<std::unique_ptr<MemoryBuffer>> CodeOrErr =
- MemoryBuffer::getFileOrSTDIN(I);
+ MemoryBuffer::getFileOrSTDIN(I, /*IsText=*/true);
if (std::error_code EC = CodeOrErr.getError())
return createFileError(I, EC);
InputBuffers.emplace_back(std::move(*CodeOrErr));
@@ -1392,7 +1392,7 @@ Error OffloadBundler::BundleFiles() {
Error OffloadBundler::UnbundleFiles() {
// Open Input file.
ErrorOr<std::unique_ptr<MemoryBuffer>> CodeOrErr =
- MemoryBuffer::getFileOrSTDIN(BundlerConfig.InputFileNames.front());
+ MemoryBuffer::getFileOrSTDIN(BundlerConfig.InputFileNames.front(), /*IsText=*/true);
if (std::error_code EC = CodeOrErr.getError())
return createFileError(BundlerConfig.InputFileNames.front(), EC);
diff --git a/llvm/tools/llvm-link/llvm-link.cpp b/llvm/tools/llvm-link/llvm-link.cpp
index 317b6e20f64cff..9eb9b9bc6c1650 100644
--- a/llvm/tools/llvm-link/llvm-link.cpp
+++ b/llvm/tools/llvm-link/llvm-link.cpp
@@ -331,7 +331,7 @@ static bool importFunctions(const char *argv0, Module &DestModule) {
auto ModuleLoader = [&DestModule](const char *argv0,
const std::string &Identifier) {
std::unique_ptr<MemoryBuffer> Buffer =
- ExitOnErr(errorOrToExpected(MemoryBuffer::getFileOrSTDIN(Identifier)));
+ ExitOnErr(errorOrToExpected(MemoryBuffer::getFileOrSTDIN(Identifier, /*IsText=*/true)));
return loadFile(argv0, std::move(Buffer), DestModule.getContext(), false);
};
@@ -402,7 +402,7 @@ static bool linkFiles(const char *argv0, LLVMContext &Context, Linker &L,
// Similar to some flags, internalization doesn't apply to the first file.
bool InternalizeLinkedSymbols = false;
for (const auto &File : Files) {
- auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(File);
+ auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(File, /*IsText=*/true);
// When we encounter a missing file, make sure we expose its name.
if (auto EC = BufferOrErr.getError())
diff --git a/llvm/tools/llvm-objdump/SourcePrinter.cpp b/llvm/tools/llvm-objdump/SourcePrinter.cpp
index 7099390f24233f..600bd6aa4d51e5 100644
--- a/llvm/tools/llvm-objdump/SourcePrinter.cpp
+++ b/llvm/tools/llvm-objdump/SourcePrinter.cpp
@@ -344,7 +344,8 @@ bool SourcePrinter::cacheSource(const DILineInfo &LineInfo) {
if (LineInfo.Source) {
Buffer = MemoryBuffer::getMemBuffer(*LineInfo.Source);
} else {
- auto BufferOrError = MemoryBuffer::getFile(LineInfo.FileName);
+ auto BufferOrError =
+ MemoryBuffer::getFile(LineInfo.FileName, /*IsText=*/true);
if (!BufferOrError) {
if (MissingSources.insert(LineInfo.FileName).second)
reportWarning("failed to find source " + LineInfo.FileName,
diff --git a/llvm/tools/llvm-rc/llvm-rc.cpp b/llvm/tools/llvm-rc/llvm-rc.cpp
index 51214524adeef6..4bc9d90095575b 100644
--- a/llvm/tools/llvm-rc/llvm-rc.cpp
+++ b/llvm/tools/llvm-rc/llvm-rc.cpp
@@ -603,7 +603,7 @@ void doRc(std::string Src, std::string Dest, RcOptions &Opts,
// Read and tokenize the input file.
ErrorOr<std::unique_ptr<MemoryBuffer>> File =
- MemoryBuffer::getFile(PreprocessedFile);
+ MemoryBuffer::getFile(PreprocessedFile, /*IsText=*/true);
if (!File) {
fatalError("Error opening file '" + Twine(PreprocessedFile) +
"': " + File.getError().message());
@@ -682,7 +682,7 @@ void doCvtres(std::string Src, std::string Dest, std::string TargetTriple) {
object::WindowsResourceParser Parser;
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
- MemoryBuffer::getFile(Src);
+ MemoryBuffer::getFile(Src, /*IsText=*/true);
if (!BufferOrErr)
fatalError("Error opening file '" + Twine(Src) +
"': " + BufferOrErr.getError().message());
diff --git a/llvm/tools/llvm-readtapi/llvm-readtapi.cpp b/llvm/tools/llvm-readtapi/llvm-readtapi.cpp
index 1f183975d9481f..c287dac4cd239a 100644
--- a/llvm/tools/llvm-readtapi/llvm-readtapi.cpp
+++ b/llvm/tools/llvm-readtapi/llvm-readtapi.cpp
@@ -125,7 +125,7 @@ static std::unique_ptr<InterfaceFile>
getInterfaceFile(const StringRef Filename, bool ResetBanner = true) {
ExitOnErr.setBanner(TOOLNAME + ": error: '" + Filename.str() + "' ");
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
- MemoryBuffer::getFile(Filename);
+ MemoryBuffer::getFile(Filename, /*IsText=*/true);
if (BufferOrErr.getError())
ExitOnErr(errorCodeToError(BufferOrErr.getError()));
auto Buffer = std::move(*BufferOrErr);
diff --git a/llvm/tools/llvm-strings/llvm-strings.cpp b/llvm/tools/llvm-strings/llvm-strings.cpp
index 8642be3127fed5..d4305096b60a0b 100644
--- a/llvm/tools/llvm-strings/llvm-strings.cpp
+++ b/llvm/tools/llvm-strings/llvm-strings.cpp
@@ -173,7 +173,7 @@ int main(int argc, char **argv) {
for (const auto &File : InputFileNames) {
ErrorOr<std::unique_ptr<MemoryBuffer>> Buffer =
- MemoryBuffer::getFileOrSTDIN(File);
+ MemoryBuffer::getFileOrSTDIN(File, /*IsText=*/true);
if (std::error_code EC = Buffer.getError())
errs() << File << ": " << EC.message() << '\n';
else
diff --git a/llvm/utils/split-file/split-file.cpp b/llvm/utils/split-file/split-file.cpp
index 2ad04d6e42f2b1..672877adaba319 100644
--- a/llvm/utils/split-file/split-file.cpp
+++ b/llvm/utils/split-file/split-file.cpp
@@ -123,7 +123,7 @@ static int handle(MemoryBuffer &inputBuf, StringRef input) {
if (ec)
fatal(input, ec.message());
auto f = std::make_unique<ToolOutputFile>(partPath.str(), ec,
- llvm::sys::fs::OF_None);
+ llvm::sys::fs::OF_Text);
if (!f)
fatal(input, ec.message());
@@ -156,7 +156,7 @@ int main(int argc, const char **argv) {
if (output.empty())
fatal("", "output directory is not specified");
ErrorOr<std::unique_ptr<MemoryBuffer>> bufferOrErr =
- MemoryBuffer::getFileOrSTDIN(input);
+ MemoryBuffer::getFileOrSTDIN(input, /*IsText=*/true);
if (std::error_code ec = bufferOrErr.getError())
fatal(input, ec.message());
|
✅ With the latest revision this PR passed the C/C++ code formatter. |
3325960
to
0dd3d22
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This patch continues the work that was started here https://reviews.llvm.org/D99426 to correctly open text files in text mode.