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/tools/llvm-extract/llvm-extract.cpp b/tools/llvm-extract/llvm-extract.cpp
index c7f942a..3f24e38 100644
--- a/tools/llvm-extract/llvm-extract.cpp
+++ b/tools/llvm-extract/llvm-extract.cpp
@@ -63,9 +63,8 @@
       return 1;
     }
 
-    // In addition to deleting all other functions, we also want to spiff it up a
-    // little bit.  Do this now.
-    //
+    // In addition to deleting all other functions, we also want to spiff it
+    // up a little bit.  Do this now.
     PassManager Passes;
     Passes.add(new TargetData("extract", M.get())); // Use correct TargetData
     // Either isolate the function or delete it from the Module
@@ -84,8 +83,11 @@
                   << "Use -f command line argument to force output\n";
         return 1;
       }
-      Out = new std::ofstream(OutputFilename.c_str());
+      std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
+                                   std::ios::binary;
+      Out = new std::ofstream(OutputFilename.c_str(), io_mode);
     } else {                      // Specified stdout
+      // FIXME: cout is not binary!
       Out = &std::cout;       
     }