aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/ToolOutputFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Support/ToolOutputFile.cpp')
-rw-r--r--llvm/lib/Support/ToolOutputFile.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Support/ToolOutputFile.cpp b/llvm/lib/Support/ToolOutputFile.cpp
index c2ca97a..3735aac 100644
--- a/llvm/lib/Support/ToolOutputFile.cpp
+++ b/llvm/lib/Support/ToolOutputFile.cpp
@@ -11,6 +11,7 @@
//===----------------------------------------------------------------------===//
#include "llvm/Support/ToolOutputFile.h"
+#include "llvm/ADT/Triple.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Signals.h"
using namespace llvm;
@@ -45,7 +46,12 @@ ToolOutputFile::ToolOutputFile(StringRef Filename, std::error_code &EC,
EC = std::error_code();
return;
}
- OSHolder.emplace(Filename, EC, Flags);
+
+ // On Windows, we set the OF_None flag even for text files to avoid
+ // CRLF translation.
+ OSHolder.emplace(
+ Filename, EC,
+ llvm::Triple(LLVM_HOST_TRIPLE).isOSWindows() ? sys::fs::OF_None : Flags);
OS = OSHolder.getPointer();
// If open fails, no cleanup is needed.
if (EC)