Skip to content

Commit 74dcf0b

Browse files
authored
[SystemZ][z/OS] Open text files in text mode (#109972)
This patch continues the work that was started here https://reviews.llvm.org/D99426 to correctly open text files in text mode.
1 parent a024a0c commit 74dcf0b

File tree

7 files changed

+15
-13
lines changed

7 files changed

+15
-13
lines changed

clang/lib/Driver/OffloadBundler.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ Error OffloadBundler::ListBundleIDsInFile(
11921192
StringRef InputFileName, const OffloadBundlerConfig &BundlerConfig) {
11931193
// Open Input file.
11941194
ErrorOr<std::unique_ptr<MemoryBuffer>> CodeOrErr =
1195-
MemoryBuffer::getFileOrSTDIN(InputFileName);
1195+
MemoryBuffer::getFileOrSTDIN(InputFileName, /*IsText=*/true);
11961196
if (std::error_code EC = CodeOrErr.getError())
11971197
return createFileError(InputFileName, EC);
11981198

@@ -1324,7 +1324,7 @@ Error OffloadBundler::BundleFiles() {
13241324
InputBuffers.reserve(BundlerConfig.InputFileNames.size());
13251325
for (auto &I : BundlerConfig.InputFileNames) {
13261326
ErrorOr<std::unique_ptr<MemoryBuffer>> CodeOrErr =
1327-
MemoryBuffer::getFileOrSTDIN(I);
1327+
MemoryBuffer::getFileOrSTDIN(I, /*IsText=*/true);
13281328
if (std::error_code EC = CodeOrErr.getError())
13291329
return createFileError(I, EC);
13301330
InputBuffers.emplace_back(std::move(*CodeOrErr));
@@ -1392,7 +1392,8 @@ Error OffloadBundler::BundleFiles() {
13921392
Error OffloadBundler::UnbundleFiles() {
13931393
// Open Input file.
13941394
ErrorOr<std::unique_ptr<MemoryBuffer>> CodeOrErr =
1395-
MemoryBuffer::getFileOrSTDIN(BundlerConfig.InputFileNames.front());
1395+
MemoryBuffer::getFileOrSTDIN(BundlerConfig.InputFileNames.front(),
1396+
/*IsText=*/true);
13961397
if (std::error_code EC = CodeOrErr.getError())
13971398
return createFileError(BundlerConfig.InputFileNames.front(), EC);
13981399

llvm/tools/llvm-link/llvm-link.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,8 @@ static bool importFunctions(const char *argv0, Module &DestModule) {
330330

331331
auto ModuleLoader = [&DestModule](const char *argv0,
332332
const std::string &Identifier) {
333-
std::unique_ptr<MemoryBuffer> Buffer =
334-
ExitOnErr(errorOrToExpected(MemoryBuffer::getFileOrSTDIN(Identifier)));
333+
std::unique_ptr<MemoryBuffer> Buffer = ExitOnErr(errorOrToExpected(
334+
MemoryBuffer::getFileOrSTDIN(Identifier, /*IsText=*/true)));
335335
return loadFile(argv0, std::move(Buffer), DestModule.getContext(), false);
336336
};
337337

@@ -402,7 +402,7 @@ static bool linkFiles(const char *argv0, LLVMContext &Context, Linker &L,
402402
// Similar to some flags, internalization doesn't apply to the first file.
403403
bool InternalizeLinkedSymbols = false;
404404
for (const auto &File : Files) {
405-
auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(File);
405+
auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(File, /*IsText=*/true);
406406

407407
// When we encounter a missing file, make sure we expose its name.
408408
if (auto EC = BufferOrErr.getError())

llvm/tools/llvm-objdump/SourcePrinter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,8 @@ bool SourcePrinter::cacheSource(const DILineInfo &LineInfo) {
344344
if (LineInfo.Source) {
345345
Buffer = MemoryBuffer::getMemBuffer(*LineInfo.Source);
346346
} else {
347-
auto BufferOrError = MemoryBuffer::getFile(LineInfo.FileName);
347+
auto BufferOrError =
348+
MemoryBuffer::getFile(LineInfo.FileName, /*IsText=*/true);
348349
if (!BufferOrError) {
349350
if (MissingSources.insert(LineInfo.FileName).second)
350351
reportWarning("failed to find source " + LineInfo.FileName,

llvm/tools/llvm-rc/llvm-rc.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ void doRc(std::string Src, std::string Dest, RcOptions &Opts,
603603

604604
// Read and tokenize the input file.
605605
ErrorOr<std::unique_ptr<MemoryBuffer>> File =
606-
MemoryBuffer::getFile(PreprocessedFile);
606+
MemoryBuffer::getFile(PreprocessedFile, /*IsText=*/true);
607607
if (!File) {
608608
fatalError("Error opening file '" + Twine(PreprocessedFile) +
609609
"': " + File.getError().message());
@@ -682,7 +682,7 @@ void doCvtres(std::string Src, std::string Dest, std::string TargetTriple) {
682682
object::WindowsResourceParser Parser;
683683

684684
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
685-
MemoryBuffer::getFile(Src);
685+
MemoryBuffer::getFile(Src, /*IsText=*/true);
686686
if (!BufferOrErr)
687687
fatalError("Error opening file '" + Twine(Src) +
688688
"': " + BufferOrErr.getError().message());

llvm/tools/llvm-readtapi/llvm-readtapi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ static std::unique_ptr<InterfaceFile>
125125
getInterfaceFile(const StringRef Filename, bool ResetBanner = true) {
126126
ExitOnErr.setBanner(TOOLNAME + ": error: '" + Filename.str() + "' ");
127127
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
128-
MemoryBuffer::getFile(Filename);
128+
MemoryBuffer::getFile(Filename, /*IsText=*/true);
129129
if (BufferOrErr.getError())
130130
ExitOnErr(errorCodeToError(BufferOrErr.getError()));
131131
auto Buffer = std::move(*BufferOrErr);

llvm/tools/llvm-strings/llvm-strings.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ int main(int argc, char **argv) {
173173

174174
for (const auto &File : InputFileNames) {
175175
ErrorOr<std::unique_ptr<MemoryBuffer>> Buffer =
176-
MemoryBuffer::getFileOrSTDIN(File);
176+
MemoryBuffer::getFileOrSTDIN(File, /*IsText=*/true);
177177
if (std::error_code EC = Buffer.getError())
178178
errs() << File << ": " << EC.message() << '\n';
179179
else

llvm/utils/split-file/split-file.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ static int handle(MemoryBuffer &inputBuf, StringRef input) {
123123
if (ec)
124124
fatal(input, ec.message());
125125
auto f = std::make_unique<ToolOutputFile>(partPath.str(), ec,
126-
llvm::sys::fs::OF_None);
126+
llvm::sys::fs::OF_Text);
127127
if (!f)
128128
fatal(input, ec.message());
129129

@@ -156,7 +156,7 @@ int main(int argc, const char **argv) {
156156
if (output.empty())
157157
fatal("", "output directory is not specified");
158158
ErrorOr<std::unique_ptr<MemoryBuffer>> bufferOrErr =
159-
MemoryBuffer::getFileOrSTDIN(input);
159+
MemoryBuffer::getFileOrSTDIN(input, /*IsText=*/true);
160160
if (std::error_code ec = bufferOrErr.getError())
161161
fatal(input, ec.message());
162162

0 commit comments

Comments
 (0)