Mark output as text if it is really text

This is a continuation of https://reviews.llvm.org/D67696. The following places need to set the OF_Text flag correctly.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D96363
This commit is contained in:
Abhina Sreeskantharajan 2021-02-12 07:12:12 -05:00
parent feaf1d81e3
commit fdb640ea30
3 changed files with 9 additions and 4 deletions

View File

@ -1445,7 +1445,9 @@ void Driver::generateCompilationDiagnostics(
llvm::SmallString<128> Script(CrashInfo.Filename);
llvm::sys::path::replace_extension(Script, "sh");
std::error_code EC;
llvm::raw_fd_ostream ScriptOS(Script, EC, llvm::sys::fs::CD_CreateNew);
llvm::raw_fd_ostream ScriptOS(Script, EC, llvm::sys::fs::CD_CreateNew,
llvm::sys::fs::FA_Write,
llvm::sys::fs::OF_Text);
if (EC) {
Diag(clang::diag::note_drv_command_failed_diag_msg)
<< "Error generating run script: " << Script << " " << EC.message();

View File

@ -185,7 +185,7 @@ RewriteObjCAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) {
void RewriteMacrosAction::ExecuteAction() {
CompilerInstance &CI = getCompilerInstance();
std::unique_ptr<raw_ostream> OS =
CI.createDefaultOutputFile(true, getCurrentFileOrBufferName());
CI.createDefaultOutputFile(/*Binary=*/false, getCurrentFileOrBufferName());
if (!OS) return;
RewriteMacrosInInput(CI.getPreprocessor(), OS.get());
@ -270,7 +270,7 @@ public:
bool RewriteIncludesAction::BeginSourceFileAction(CompilerInstance &CI) {
if (!OutputStream) {
OutputStream =
CI.createDefaultOutputFile(true, getCurrentFileOrBufferName());
CI.createDefaultOutputFile(/*Binary=*/false, getCurrentFileOrBufferName());
if (!OutputStream)
return false;
}

View File

@ -252,7 +252,10 @@ static Error emitRemarks(const LinkOptions &Options, StringRef BinaryPath,
}
std::error_code EC;
raw_fd_ostream OS(Options.NoOutput ? "-" : Path.str(), EC, sys::fs::OF_None);
raw_fd_ostream OS(Options.NoOutput ? "-" : Path.str(), EC,
Options.RemarksFormat == remarks::Format::Bitstream
? sys::fs::OF_None
: sys::fs::OF_Text);
if (EC)
return errorCodeToError(EC);