[LLVMdev] Binary output to cout on Windows

Reid Spencer reid at x10sys.com
Mon May 22 15:34:08 PDT 2006

Hi Michael,

LLVM uses the standard C++ library for this output. If LLVM opens the
file, it is opened in binary mode. However, LLVM is inheriting this file
descriptor from the shell in your example (std::cout) so we don't/can't
change the  open mode. You might want to try this instead:

llvm-as < input.ll -o output.bc OR llvm-as < input.ll -o - | opt


On Mon, 2006-05-22 at 14:43 -0700, Michael Smith wrote:
> I’m trying to resolve an issue that occurs in the native Windows
> implementation of LLVM (it probably doesn’t occur in Cygwin, but I
> haven’t checked). Namely, when calling
>             llvm-as < input.ll > output.bc     OR     llvm-as <
> input.ll | opt
> outputting to cout is adding \r (the CR character) to newlines. This
> specifically causes problems in WriterContext::write(…) in
> lib/Support/Compressor.cpp. Is anyone aware of a way to use a binary
> mode on cout in Windows (compiled with Visual Studio .NET 2003), or at
> least disable the inclusion of \r? It would be nice to allow the pipe
> functionality if it can be done cleanly.
> ~Michael
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060522/ef76a3ac/attachment.sig>

More information about the llvm-dev mailing list