Use binary mode for reading/writing bytecode files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19751 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Archive/ArchiveWriter.cpp b/lib/Archive/ArchiveWriter.cpp
index 5c7b126..f163767 100644
--- a/lib/Archive/ArchiveWriter.cpp
+++ b/lib/Archive/ArchiveWriter.cpp
@@ -375,7 +375,9 @@
   // Ensure we can remove the temporary even in the face of an exception
   try {
     // Create archive file for output.
-    std::ofstream ArchiveFile(TmpArchive.c_str());
+    std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
+                                 std::ios::binary;
+    std::ofstream ArchiveFile(TmpArchive.c_str(), io_mode);
   
     // Check for errors opening or creating archive file.
     if ( !ArchiveFile.is_open() || ArchiveFile.bad() ) {
@@ -413,7 +415,7 @@
       const char* base = (const char*) arch.map();
 
       // Open the final file to write and check it.
-      std::ofstream FinalFile(archPath.c_str());
+      std::ofstream FinalFile(archPath.c_str(), io_mode);
       if ( !FinalFile.is_open() || FinalFile.bad() ) {
         throw std::string("Error opening archive file: ") + archPath.toString();
       }
diff --git a/lib/Bytecode/Archive/ArchiveWriter.cpp b/lib/Bytecode/Archive/ArchiveWriter.cpp
index 5c7b126..f163767 100644
--- a/lib/Bytecode/Archive/ArchiveWriter.cpp
+++ b/lib/Bytecode/Archive/ArchiveWriter.cpp
@@ -375,7 +375,9 @@
   // Ensure we can remove the temporary even in the face of an exception
   try {
     // Create archive file for output.
-    std::ofstream ArchiveFile(TmpArchive.c_str());
+    std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
+                                 std::ios::binary;
+    std::ofstream ArchiveFile(TmpArchive.c_str(), io_mode);
   
     // Check for errors opening or creating archive file.
     if ( !ArchiveFile.is_open() || ArchiveFile.bad() ) {
@@ -413,7 +415,7 @@
       const char* base = (const char*) arch.map();
 
       // Open the final file to write and check it.
-      std::ofstream FinalFile(archPath.c_str());
+      std::ofstream FinalFile(archPath.c_str(), io_mode);
       if ( !FinalFile.is_open() || FinalFile.bad() ) {
         throw std::string("Error opening archive file: ") + archPath.toString();
       }
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp
index 5255df6..234cf7d 100644
--- a/lib/Support/FileUtilities.cpp
+++ b/lib/Support/FileUtilities.cpp
@@ -27,13 +27,14 @@
 ///
 bool llvm::DiffFiles(const std::string &FileA, const std::string &FileB,
                      std::string *Error) {
-  std::ifstream FileAStream(FileA.c_str());
+  std::ios::openmode io_mode = std::ios::in | std::ios::binary;
+  std::ifstream FileAStream(FileA.c_str(), io_mode);
   if (!FileAStream) {
     if (Error) *Error = "Couldn't open file '" + FileA + "'";
     return true;
   }
 
-  std::ifstream FileBStream(FileB.c_str());
+  std::ifstream FileBStream(FileB.c_str(), io_mode);
   if (!FileBStream) {
     if (Error) *Error = "Couldn't open file '" + FileB + "'";
     return true;
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index 0998720..ad1074d 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -78,17 +78,17 @@
 
     Verifier() 
         : Broken(false), RealPass(true), action(AbortProcessAction),
-          DS(0), msgs( std::ios_base::app | std::ios_base::out ) {}
+          DS(0), msgs( std::ios::app | std::ios::out ) {}
     Verifier( VerifierFailureAction ctn )
         : Broken(false), RealPass(true), action(ctn), DS(0), 
-          msgs( std::ios_base::app | std::ios_base::out ) {}
+          msgs( std::ios::app | std::ios::out ) {}
     Verifier(bool AB ) 
         : Broken(false), RealPass(true), 
           action( AB ? AbortProcessAction : PrintMessageAction), DS(0), 
-          msgs( std::ios_base::app | std::ios_base::out ) {}
+          msgs( std::ios::app | std::ios::out ) {}
     Verifier(DominatorSet &ds) 
       : Broken(false), RealPass(false), action(PrintMessageAction),
-        DS(&ds), msgs( std::ios_base::app | std::ios_base::out ) {}
+        DS(&ds), msgs( std::ios::app | std::ios::out ) {}
 
 
     bool doInitialization(Module &M) {