[llvm-commits] [llvm-gcc-4.2] r52039 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Anton Korobeynikov asl at math.spbu.ru
Fri Jun 6 00:25:40 PDT 2008


Author: asl
Date: Fri Jun  6 02:25:40 2008
New Revision: 52039

URL: http://llvm.org/viewvc/llvm-project?rev=52039&view=rev
Log:
Turn stdout into binary mode during bitcode emission.
This is necessary on windows targets, since stdout is in text mode there.
Patch by Julien Lerouge!

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=52039&r1=52038&r2=52039&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Fri Jun  6 02:25:40 2008
@@ -51,6 +51,7 @@
 #include "llvm/Support/Streams.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/System/Program.h"
 #include <cassert>
 #undef VISIBILITY_HIDDEN
 extern "C" {
@@ -272,6 +273,10 @@
   PerModulePasses = new PassManager();
   PerModulePasses->add(new TargetData(*TheTarget->getTargetData()));
 
+  // If writing to stdout, set binary mode.
+  if (asm_out_file == stdout)
+    sys::Program::ChangeStdoutToBinary();
+
   // Emit an LLVM .bc file to the output.  This is used when passed
   // -emit-llvm -c to the GCC driver.
   PerModulePasses->add(CreateBitcodeWriterPass(*AsmOutStream));
@@ -473,6 +478,10 @@
     // wrong for llvm/.bc emission cases.
     flag_no_ident = 1;
 
+  // If writing to stdout, set binary mode.
+  if (asm_out_file == stdout)
+    sys::Program::ChangeStdoutToBinary();
+
   AttributeUsedGlobals.clear();
   timevar_pop(TV_LLVM_INIT);
 }





More information about the llvm-commits mailing list