From d928fb670fb3b0818fc23738e9c2418980bb141e Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 27 May 2010 20:06:51 +0000 Subject: Don't special-case stdout in llvm::WriteBitcodeToFile; just consider it to be the caller's responsibility to provide a stream in binary mode. This fixes a layering violation and avoids an outs() call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104878 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/opt/opt.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'tools/opt') diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index d094ed1..cf520de 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -377,12 +377,16 @@ int main(int argc, char **argv) { } // Figure out what stream we are supposed to write to... - // FIXME: outs() is not binary! raw_ostream *Out = 0; bool DeleteStream = false; if (!NoOutput && !AnalyzeOnly) { if (OutputFilename == "-") { - Out = &outs(); // Default to printing to stdout... + // Print to stdout. + Out = &outs(); + // If we're printing a bitcode file, switch stdout to binary mode. + // FIXME: This switches outs() globally, not just for the bitcode output. + if (!OutputAssembly) + sys::Program::ChangeStdoutToBinary(); } else { if (NoOutput || AnalyzeOnly) { errs() << "WARNING: The -o (output filename) option is ignored when\n" -- cgit v1.1