<div dir="rtl"><div dir="ltr">Hi Kai,</div><div dir="ltr"><br></div><div dir="ltr">Current SVN compiles on Visual C++ 2013, with warnings, but no error in <span style="font-size:12.8000001907349px">raw_ostream.</span></div><div dir="ltr"><span style="font-size:12.8000001907349px"><br></span></div><div dir="ltr"><span style="font-size:12.8000001907349px">Yaron</span></div><div dir="ltr"><span style="font-size:12.8000001907349px"><br></span></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-04-16 11:37 GMT+03:00 Kai Nacke <span dir="ltr"><<a href="mailto:kai.nacke@redstar.de" target="_blank">kai.nacke@redstar.de</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi!<br>
<br>
I now have a compile error with MSVC:<br>
<br>
5>D:\Program Files\LLVM-x64\include\llvm/<u></u>Support/raw_ostream.h(324): error C2248: 'llvm::raw_ostream::raw_<u></u>ostream' : cannot access private member declared in class 'llvm::raw_ostream' (D:\OpenSource\ldc\ldc\driver\<u></u>toobj.cpp)<br>
5>          D:\Program Files\LLVM-x64\include\llvm/<u></u>Support/raw_ostream.h(41) : see declaration of 'llvm::raw_ostream::raw_<u></u>ostream'<br>
5>          D:\Program Files\LLVM-x64\include\llvm/<u></u>Support/raw_ostream.h(38) : see declaration of 'llvm::raw_ostream'<br>
5>          This diagnostic occurred in the compiler generated function 'llvm::raw_pwrite_stream::raw_<u></u>pwrite_stream(const llvm::raw_pwrite_stream &)'<br>
<br>
<br>
Regards,<br>
Kai<br>
<br>
On 15.04.2015 00:14, Rafael Espindola wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: rafael<br>
Date: Tue Apr 14 17:14:34 2015<br>
New Revision: 234950<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=234950&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=234950&view=rev</a><br>
Log:<br>
Use raw_pwrite_stream in the object writer/streamer.<br>
<br>
The ELF object writer will take advantage of that in the next commit.<br>
<br>
Modified:<br>
     llvm/trunk/include/llvm/LTO/<u></u>LTOCodeGenerator.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCAsmBackend.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCELFObjectWriter.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCELFStreamer.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCMachObjectWriter.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCObjectStreamer.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCObjectWriter.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFObjectWriter.h<br>
     llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFStreamer.h<br>
     llvm/trunk/include/llvm/<u></u>Support/TargetRegistry.h<br>
     llvm/trunk/include/llvm/<u></u>Target/TargetMachine.h<br>
     llvm/trunk/lib/CodeGen/<u></u>LLVMTargetMachine.cpp<br>
     llvm/trunk/lib/LTO/<u></u>LTOCodeGenerator.cpp<br>
     llvm/trunk/lib/MC/<u></u>ELFObjectWriter.cpp<br>
     llvm/trunk/lib/MC/<u></u>MCELFStreamer.cpp<br>
     llvm/trunk/lib/MC/<u></u>MCMachOStreamer.cpp<br>
     llvm/trunk/lib/MC/<u></u>MCObjectStreamer.cpp<br>
     llvm/trunk/lib/MC/<u></u>MachObjectWriter.cpp<br>
     llvm/trunk/lib/MC/<u></u>WinCOFFObjectWriter.cpp<br>
     llvm/trunk/lib/MC/<u></u>WinCOFFStreamer.cpp<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64AsmBackend.cpp<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.cpp<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.h<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.cpp<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.h<br>
     llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MachObjectWriter.cpp<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendDarwin.h<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMAsmBackendELF.<u></u>h<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendWinCOFF.h<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMELFStreamer.<u></u>cpp<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.<u></u>cpp<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.h<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMMachObjectWriter.cpp<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFStreamer.cpp<br>
     llvm/trunk/lib/Target/<u></u>CppBackend/CPPBackend.cpp<br>
     llvm/trunk/lib/Target/<u></u>CppBackend/CPPTargetMachine.h<br>
     llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonAsmBackend.cpp<br>
     llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonMCTargetDesc.h<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.<u></u>cpp<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.h<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/<u></u>MipsELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.<u></u>cpp<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.h<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsMCNaCl.h<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsMCTargetDesc.<u></u>cpp<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsMCTargetDesc.<u></u>h<br>
     llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/<u></u>MipsNaClELFStreamer.cpp<br>
     llvm/trunk/lib/Target/NVPTX/<u></u>NVPTXTargetMachine.h<br>
     llvm/trunk/lib/Target/PowerPC/<u></u>MCTargetDesc/PPCAsmBackend.cpp<br>
     llvm/trunk/lib/Target/PowerPC/<u></u>MCTargetDesc/<u></u>PPCELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/PowerPC/<u></u>MCTargetDesc/PPCMCTargetDesc.h<br>
     llvm/trunk/lib/Target/PowerPC/<u></u>MCTargetDesc/<u></u>PPCMachObjectWriter.cpp<br>
     llvm/trunk/lib/Target/R600/<u></u>MCTargetDesc/AMDGPUAsmBackend.<u></u>cpp<br>
     llvm/trunk/lib/Target/R600/<u></u>MCTargetDesc/<u></u>AMDGPUELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/R600/<u></u>MCTargetDesc/<u></u>AMDGPUMCTargetDesc.h<br>
     llvm/trunk/lib/Target/Sparc/<u></u>MCTargetDesc/SparcAsmBackend.<u></u>cpp<br>
     llvm/trunk/lib/Target/Sparc/<u></u>MCTargetDesc/<u></u>SparcELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/Sparc/<u></u>MCTargetDesc/<u></u>SparcMCTargetDesc.h<br>
     llvm/trunk/lib/Target/SystemZ/<u></u>MCTargetDesc/<u></u>SystemZMCAsmBackend.cpp<br>
     llvm/trunk/lib/Target/SystemZ/<u></u>MCTargetDesc/<u></u>SystemZMCObjectWriter.cpp<br>
     llvm/trunk/lib/Target/SystemZ/<u></u>MCTargetDesc/<u></u>SystemZMCTargetDesc.h<br>
     llvm/trunk/lib/Target/<u></u>TargetMachineC.cpp<br>
     llvm/trunk/lib/Target/X86/<u></u>MCTargetDesc/X86AsmBackend.cpp<br>
     llvm/trunk/lib/Target/X86/<u></u>MCTargetDesc/<u></u>X86ELFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/X86/<u></u>MCTargetDesc/X86MCTargetDesc.h<br>
     llvm/trunk/lib/Target/X86/<u></u>MCTargetDesc/<u></u>X86MachObjectWriter.cpp<br>
     llvm/trunk/lib/Target/X86/<u></u>MCTargetDesc/<u></u>X86WinCOFFObjectWriter.cpp<br>
     llvm/trunk/lib/Target/X86/<u></u>MCTargetDesc/<u></u>X86WinCOFFStreamer.cpp<br>
     llvm/trunk/tools/llc/llc.cpp<br>
     llvm/trunk/tools/llvm-mc/llvm-<u></u>mc.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/LTO/<u></u>LTOCodeGenerator.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/LTO/LTOCodeGenerator.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/LTO/<u></u>LTOCodeGenerator.h (original)<br>
+++ llvm/trunk/include/llvm/LTO/<u></u>LTOCodeGenerator.h Tue Apr 14 17:14:34 2015<br>
@@ -53,6 +53,7 @@ namespace llvm {<br>
    class TargetLibraryInfo;<br>
    class TargetMachine;<br>
    class raw_ostream;<br>
+  class raw_pwrite_stream;<br>
<br>
  //===-------------------------<u></u>------------------------------<u></u>---------------===//<br>
  /// C++ class which implements the opaque lto_code_gen_t type.<br>
@@ -137,7 +138,7 @@ struct LTOCodeGenerator {<br>
  private:<br>
    void initializeLTOPasses();<br>
<br>
-  bool compileOptimized(raw_ostream &out, std::string &errMsg);<br>
+  bool compileOptimized(raw_pwrite_<u></u>stream &out, std::string &errMsg);<br>
    bool compileOptimizedToFile(const char **name, std::string &errMsg);<br>
    void applyScopeRestrictions();<br>
    void applyRestriction(GlobalValue &GV, ArrayRef<StringRef> Libcalls,<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCAsmBackend.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAsmBackend.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCAsmBackend.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCAsmBackend.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCAsmBackend.h Tue Apr 14 17:14:34 2015<br>
@@ -48,7 +48,7 @@ public:<br>
<br>
    /// Create a new MCObjectWriter instance for use by the assembler backend to<br>
    /// emit the final object file.<br>
-  virtual MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const = 0;<br>
+  virtual MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const = 0;<br>
<br>
    /// Create a new ELFObjectTargetWriter to enable non-standard<br>
    /// ELFObjectWriters.<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCELFObjectWriter.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCELFObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCELFObjectWriter.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCELFObjectWriter.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCELFObjectWriter.h Tue Apr 14 17:14:34 2015<br>
@@ -24,6 +24,7 @@ class MCSectionData;<br>
  class MCSymbol;<br>
  class MCSymbolData;<br>
  class MCValue;<br>
+class raw_pwrite_stream;<br>
<br>
  struct ELFRelocationEntry {<br>
    uint64_t Offset; // Where is the relocation.<br>
@@ -130,7 +131,8 @@ public:<br>
  /// \param OS - The stream to write to.<br>
  /// \returns The constructed object writer.<br>
  MCObjectWriter *createELFObjectWriter(<u></u>MCELFObjectTargetWriter *MOTW,<br>
-                                      raw_ostream &OS, bool IsLittleEndian);<br>
+                                      raw_pwrite_stream &OS,<br>
+                                      bool IsLittleEndian);<br>
  } // End llvm namespace<br>
<br>
  #endif<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCELFStreamer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCELFStreamer.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCELFStreamer.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCELFStreamer.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCELFStreamer.h Tue Apr 14 17:14:34 2015<br>
@@ -29,10 +29,9 @@ class raw_ostream;<br>
<br>
  class MCELFStreamer : public MCObjectStreamer {<br>
  public:<br>
-  MCELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS,<br>
+  MCELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_pwrite_stream &OS,<br>
                  MCCodeEmitter *Emitter)<br>
-      : MCObjectStreamer(Context, TAB, OS, Emitter),<br>
-        SeenIdent(false) {}<br>
+      : MCObjectStreamer(Context, TAB, OS, Emitter), SeenIdent(false) {}<br>
<br>
    ~MCELFStreamer() override;<br>
<br>
@@ -116,8 +115,9 @@ private:<br>
  };<br>
<br>
  MCELFStreamer *createARMELFStreamer(<u></u>MCContext &Context, MCAsmBackend &TAB,<br>
-                                    raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                    bool RelaxAll, bool IsThumb);<br>
+                                    raw_pwrite_stream &OS,<br>
+                                    MCCodeEmitter *Emitter, bool RelaxAll,<br>
+                                    bool IsThumb);<br>
<br>
  } // end namespace llvm<br>
<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCMachObjectWriter.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCMachObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCMachObjectWriter.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCMachObjectWriter.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCMachObjectWriter.h Tue Apr 14 17:14:34 2015<br>
@@ -119,7 +119,7 @@ class MachObjectWriter : public MCObject<br>
    MachSymbolData *findSymbolData(const MCSymbol &Sym);<br>
<br>
  public:<br>
-  MachObjectWriter(<u></u>MCMachObjectTargetWriter *MOTW, raw_ostream &OS,<br>
+  MachObjectWriter(<u></u>MCMachObjectTargetWriter *MOTW, raw_pwrite_stream &OS,<br>
                     bool IsLittleEndian)<br>
        : MCObjectWriter(OS, IsLittleEndian), TargetObjectWriter(MOTW) {}<br>
<br>
@@ -279,7 +279,8 @@ public:<br>
  /// \param OS - The stream to write to.<br>
  /// \returns The constructed object writer.<br>
  MCObjectWriter *createMachObjectWriter(<u></u>MCMachObjectTargetWriter *MOTW,<br>
-                                       raw_ostream &OS, bool IsLittleEndian);<br>
+                                       raw_pwrite_stream &OS,<br>
+                                       bool IsLittleEndian);<br>
<br>
  } // End llvm namespace<br>
<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCObjectStreamer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectStreamer.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCObjectStreamer.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCObjectStreamer.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCObjectStreamer.h Tue Apr 14 17:14:34 2015<br>
@@ -24,6 +24,7 @@ class MCFragment;<br>
  class MCDataFragment;<br>
  class MCAsmBackend;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
<br>
  /// \brief Streaming object file generation interface.<br>
  ///<br>
@@ -45,7 +46,7 @@ class MCObjectStreamer : public MCStream<br>
    void EmitCFIEndProcImpl(<u></u>MCDwarfFrameInfo &Frame) override;<br>
<br>
  protected:<br>
-  MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS,<br>
+  MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB, raw_pwrite_stream &OS,<br>
                     MCCodeEmitter *Emitter);<br>
    ~MCObjectStreamer() override;<br>
<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCObjectWriter.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCObjectWriter.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCObjectWriter.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCObjectWriter.h Tue Apr 14 17:14:34 2015<br>
@@ -42,12 +42,12 @@ class MCObjectWriter {<br>
    void operator=(const MCObjectWriter &) = delete;<br>
<br>
  protected:<br>
-  raw_ostream &OS;<br>
+  raw_pwrite_stream &OS;<br>
<br>
    unsigned IsLittleEndian : 1;<br>
<br>
  protected: // Can only create subclasses.<br>
-  MCObjectWriter(raw_ostream &OS, bool IsLittleEndian)<br>
+  MCObjectWriter(raw_pwrite_<u></u>stream &OS, bool IsLittleEndian)<br>
        : OS(OS), IsLittleEndian(IsLittleEndian) {}<br>
<br>
  public:<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFObjectWriter.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCWinCOFFObjectWriter.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCWinCOFFObjectWriter.<u></u>h?rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFObjectWriter.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFObjectWriter.h Tue Apr 14 17:14:34 2015<br>
@@ -16,6 +16,7 @@ class MCFixup;<br>
  class MCObjectWriter;<br>
  class MCValue;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
<br>
    class MCWinCOFFObjectTargetWriter {<br>
      virtual void anchor();<br>
@@ -40,7 +41,7 @@ class raw_ostream;<br>
    /// \param OS - The stream to write to.<br>
    /// \returns The constructed object writer.<br>
    MCObjectWriter *createWinCOFFObjectWriter(<u></u>MCWinCOFFObjectTargetWriter *MOTW,<br>
-                                            raw_ostream &OS);<br>
+                                            raw_pwrite_stream &OS);<br>
  } // End llvm namespace<br>
<br>
  #endif<br>
<br>
Modified: llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFStreamer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCWinCOFFStreamer.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/MC/MCWinCOFFStreamer.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFStreamer.h (original)<br>
+++ llvm/trunk/include/llvm/MC/<u></u>MCWinCOFFStreamer.h Tue Apr 14 17:14:34 2015<br>
@@ -24,11 +24,12 @@ class MCSubtargetInfo;<br>
  class MCSymbol;<br>
  class StringRef;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
<br>
  class MCWinCOFFStreamer : public MCObjectStreamer {<br>
  public:<br>
    MCWinCOFFStreamer(MCContext &Context, MCAsmBackend &MAB, MCCodeEmitter &CE,<br>
-                    raw_ostream &OS);<br>
+                    raw_pwrite_stream &OS);<br>
<br>
    /// state management<br>
    void reset() override {<br>
<br>
Modified: llvm/trunk/include/llvm/<u></u>Support/TargetRegistry.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/TargetRegistry.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/Support/TargetRegistry.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/<u></u>Support/TargetRegistry.h (original)<br>
+++ llvm/trunk/include/llvm/<u></u>Support/TargetRegistry.h Tue Apr 14 17:14:34 2015<br>
@@ -50,6 +50,7 @@ namespace llvm {<br>
    class TargetMachine;<br>
    class TargetOptions;<br>
    class raw_ostream;<br>
+  class raw_pwrite_stream;<br>
    class formatted_raw_ostream;<br>
<br>
    MCStreamer *createNullStreamer(MCContext &Ctx);<br>
@@ -61,10 +62,10 @@ namespace llvm {<br>
<br>
    /// Takes ownership of \p TAB and \p CE.<br>
    MCStreamer *createELFStreamer(MCContext &Ctx, MCAsmBackend &TAB,<br>
-                                raw_ostream &OS, MCCodeEmitter *CE,<br>
+                                raw_pwrite_stream &OS, MCCodeEmitter *CE,<br>
                                  bool RelaxAll);<br>
    MCStreamer *createMachOStreamer(MCContext &Ctx, MCAsmBackend &TAB,<br>
-                                  raw_ostream &OS, MCCodeEmitter *CE,<br>
+                                  raw_pwrite_stream &OS, MCCodeEmitter *CE,<br>
                                    bool RelaxAll, bool DWARFMustBeAtTheEnd,<br>
                                    bool LabelSections = false);<br>
<br>
@@ -135,14 +136,15 @@ namespace llvm {<br>
                                                    const MCRegisterInfo &MRI,<br>
                                                    MCContext &Ctx);<br>
      typedef MCStreamer *(*ELFStreamerCtorTy)(const Triple &T, MCContext &Ctx,<br>
-                                             MCAsmBackend &TAB, raw_ostream &OS,<br>
+                                             MCAsmBackend &TAB,<br>
+                                             raw_pwrite_stream &OS,<br>
                                               MCCodeEmitter *Emitter,<br>
                                               bool RelaxAll);<br>
      typedef MCStreamer *(*MachOStreamerCtorTy)(<br>
-        MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS,<br>
+        MCContext &Ctx, MCAsmBackend &TAB, raw_pwrite_stream &OS,<br>
          MCCodeEmitter *Emitter, bool RelaxAll, bool DWARFMustBeAtTheEnd);<br>
      typedef MCStreamer *(*COFFStreamerCtorTy)(<u></u>MCContext &Ctx, MCAsmBackend &TAB,<br>
-                                              raw_ostream &OS,<br>
+                                              raw_pwrite_stream &OS,<br>
                                                MCCodeEmitter *Emitter,<br>
                                                bool RelaxAll);<br>
      typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(<u></u>MCStreamer &S);<br>
@@ -438,7 +440,7 @@ namespace llvm {<br>
      /// \param Emitter The target independent assembler object.Takes ownership.<br>
      /// \param RelaxAll Relax all fixups?<br>
      MCStreamer *createMCObjectStreamer(const Triple &T, MCContext &Ctx,<br>
-                                       MCAsmBackend &TAB, raw_ostream &OS,<br>
+                                       MCAsmBackend &TAB, raw_pwrite_stream &OS,<br>
                                         MCCodeEmitter *Emitter,<br>
                                         const MCSubtargetInfo &STI,<br>
                                         bool RelaxAll,<br>
<br>
Modified: llvm/trunk/include/llvm/<u></u>Target/TargetMachine.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetMachine.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/include/<u></u>llvm/Target/TargetMachine.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/include/llvm/<u></u>Target/TargetMachine.h (original)<br>
+++ llvm/trunk/include/llvm/<u></u>Target/TargetMachine.h Tue Apr 14 17:14:34 2015<br>
@@ -48,6 +48,7 @@ class TargetSubtargetInfo;<br>
  class TargetTransformInfo;<br>
  class formatted_raw_ostream;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
  class TargetLoweringObjectFile;<br>
<br>
  // The old pass manager infrastructure is hidden in a legacy namespace now.<br>
@@ -207,7 +208,7 @@ public:<br>
    /// emitted.  Typically this will involve several steps of code generation.<br>
    /// This method should return true if emission of this file type is not<br>
    /// supported, or false on success.<br>
-  virtual bool addPassesToEmitFile(<u></u>PassManagerBase &, raw_ostream &,<br>
+  virtual bool addPassesToEmitFile(<u></u>PassManagerBase &, raw_pwrite_stream &,<br>
                                     CodeGenFileType,<br>
                                     bool /*DisableVerify*/ = true,<br>
                                     AnalysisID /*StartAfter*/ = nullptr,<br>
@@ -220,9 +221,8 @@ public:<br>
    /// fills the MCContext Ctx pointer which can be used to build custom<br>
    /// MCStreamer.<br>
    ///<br>
-  virtual bool addPassesToEmitMC(<u></u>PassManagerBase &,<br>
-                                 MCContext *&,<br>
-                                 raw_ostream &,<br>
+  virtual bool addPassesToEmitMC(<u></u>PassManagerBase &, MCContext *&,<br>
+                                 raw_pwrite_stream &,<br>
                                   bool /*DisableVerify*/ = true) {<br>
      return true;<br>
    }<br>
@@ -256,7 +256,7 @@ public:<br>
<br>
    /// Add passes to the specified pass manager to get the specified file<br>
    /// emitted.  Typically this will involve several steps of code generation.<br>
-  bool addPassesToEmitFile(<u></u>PassManagerBase &PM, raw_ostream &Out,<br>
+  bool addPassesToEmitFile(<u></u>PassManagerBase &PM, raw_pwrite_stream &Out,<br>
                             CodeGenFileType FileType, bool DisableVerify = true,<br>
                             AnalysisID StartAfter = nullptr,<br>
                             AnalysisID StopAfter = nullptr) override;<br>
@@ -266,7 +266,8 @@ public:<br>
    /// fills the MCContext Ctx pointer which can be used to build custom<br>
    /// MCStreamer.<br>
    bool addPassesToEmitMC(<u></u>PassManagerBase &PM, MCContext *&Ctx,<br>
-                         raw_ostream &OS, bool DisableVerify = true) override;<br>
+                         raw_pwrite_stream &OS,<br>
+                         bool DisableVerify = true) override;<br>
  };<br>
<br>
  } // End llvm namespace<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<u></u>LLVMTargetMachine.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>CodeGen/LLVMTargetMachine.cpp?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/CodeGen/<u></u>LLVMTargetMachine.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<u></u>LLVMTargetMachine.cpp Tue Apr 14 17:14:34 2015<br>
@@ -141,7 +141,7 @@ static MCContext *addPassesToGenerateCod<br>
  }<br>
<br>
  bool LLVMTargetMachine::<u></u>addPassesToEmitFile(<br>
-    PassManagerBase &PM, raw_ostream &Out, CodeGenFileType FileType,<br>
+    PassManagerBase &PM, raw_pwrite_stream &Out, CodeGenFileType FileType,<br>
      bool DisableVerify, AnalysisID StartAfter, AnalysisID StopAfter) {<br>
    // Add common CodeGen passes.<br>
    MCContext *Context = addPassesToGenerateCode(this, PM, DisableVerify,<br>
@@ -227,9 +227,8 @@ bool LLVMTargetMachine::<u></u>addPassesToEmitF<br>
  /// code is not supported. It fills the MCContext Ctx pointer which can be<br>
  /// used to build custom MCStreamer.<br>
  ///<br>
-bool LLVMTargetMachine::<u></u>addPassesToEmitMC(<u></u>PassManagerBase &PM,<br>
-                                          MCContext *&Ctx,<br>
-                                          raw_ostream &Out,<br>
+bool LLVMTargetMachine::<u></u>addPassesToEmitMC(<u></u>PassManagerBase &PM, MCContext *&Ctx,<br>
+                                          raw_pwrite_stream &Out,<br>
                                            bool DisableVerify) {<br>
    // Add common CodeGen passes.<br>
    Ctx = addPassesToGenerateCode(this, PM, DisableVerify, nullptr, nullptr);<br>
<br>
Modified: llvm/trunk/lib/LTO/<u></u>LTOCodeGenerator.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/LTO/<u></u>LTOCodeGenerator.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/LTO/<u></u>LTOCodeGenerator.cpp (original)<br>
+++ llvm/trunk/lib/LTO/<u></u>LTOCodeGenerator.cpp Tue Apr 14 17:14:34 2015<br>
@@ -566,7 +566,8 @@ bool LTOCodeGenerator::optimize(<u></u>bool Dis<br>
    return true;<br>
  }<br>
<br>
-bool LTOCodeGenerator::<u></u>compileOptimized(raw_ostream &out, std::string &errMsg) {<br>
+bool LTOCodeGenerator::<u></u>compileOptimized(raw_pwrite_<u></u>stream &out,<br>
+                                        std::string &errMsg) {<br>
    if (!this->determineTarget(<u></u>errMsg))<br>
      return false;<br>
<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>ELFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/ELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>ELFObjectWriter.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>ELFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>ELFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -168,7 +168,7 @@ class ELFObjectWriter : public MCObjectW<br>
      }<br>
<br>
    public:<br>
-    ELFObjectWriter(<u></u>MCELFObjectTargetWriter *MOTW, raw_ostream &OS,<br>
+    ELFObjectWriter(<u></u>MCELFObjectTargetWriter *MOTW, raw_pwrite_stream &OS,<br>
                      bool IsLittleEndian)<br>
          : MCObjectWriter(OS, IsLittleEndian), FWriter(IsLittleEndian),<br>
            TargetObjectWriter(MOTW), NeedsGOT(false) {}<br>
@@ -1711,7 +1711,7 @@ bool ELFObjectWriter::isWeak(const MCSym<br>
  }<br>
<br>
  MCObjectWriter *llvm::createELFObjectWriter(<u></u>MCELFObjectTargetWriter *MOTW,<br>
-                                            raw_ostream &OS,<br>
+                                            raw_pwrite_stream &OS,<br>
                                              bool IsLittleEndian) {<br>
    return new ELFObjectWriter(MOTW, OS, IsLittleEndian);<br>
  }<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>MCELFStreamer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCELFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>MCELFStreamer.cpp?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>MCELFStreamer.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>MCELFStreamer.cpp Tue Apr 14 17:14:34 2015<br>
@@ -647,7 +647,7 @@ void MCELFStreamer::FinishImpl() {<br>
  }<br>
<br>
  MCStreamer *llvm::createELFStreamer(<u></u>MCContext &Context, MCAsmBackend &MAB,<br>
-                                    raw_ostream &OS, MCCodeEmitter *CE,<br>
+                                    raw_pwrite_stream &OS, MCCodeEmitter *CE,<br>
                                      bool RelaxAll) {<br>
    MCELFStreamer *S = new MCELFStreamer(Context, MAB, OS, CE);<br>
    if (RelaxAll)<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>MCMachOStreamer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCMachOStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>MCMachOStreamer.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>MCMachOStreamer.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>MCMachOStreamer.cpp Tue Apr 14 17:14:34 2015<br>
@@ -54,7 +54,7 @@ private:<br>
    void EmitDataRegionEnd();<br>
<br>
  public:<br>
-  MCMachOStreamer(MCContext &Context, MCAsmBackend &MAB, raw_ostream &OS,<br>
+  MCMachOStreamer(MCContext &Context, MCAsmBackend &MAB, raw_pwrite_stream &OS,<br>
                    MCCodeEmitter *Emitter, bool DWARFMustBeAtTheEnd, bool label)<br>
        : MCObjectStreamer(Context, MAB, OS, Emitter), LabelSections(label),<br>
          DWARFMustBeAtTheEnd(<u></u>DWARFMustBeAtTheEnd), CreatedADWARFSection(false) {}<br>
@@ -491,7 +491,7 @@ void MCMachOStreamer::FinishImpl() {<br>
  }<br>
<br>
  MCStreamer *llvm::createMachOStreamer(<u></u>MCContext &Context, MCAsmBackend &MAB,<br>
-                                      raw_ostream &OS, MCCodeEmitter *CE,<br>
+                                      raw_pwrite_stream &OS, MCCodeEmitter *CE,<br>
                                        bool RelaxAll, bool DWARFMustBeAtTheEnd,<br>
                                        bool LabelSections) {<br>
    MCMachOStreamer *S = new MCMachOStreamer(Context, MAB, OS, CE,<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>MCObjectStreamer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCObjectStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>MCObjectStreamer.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>MCObjectStreamer.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>MCObjectStreamer.cpp Tue Apr 14 17:14:34 2015<br>
@@ -24,7 +24,8 @@<br>
  using namespace llvm;<br>
<br>
  MCObjectStreamer::<u></u>MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB,<br>
-                                   raw_ostream &OS, MCCodeEmitter *Emitter_)<br>
+                                   raw_pwrite_stream &OS,<br>
+                                   MCCodeEmitter *Emitter_)<br>
      : MCStreamer(Context),<br>
        Assembler(new MCAssembler(Context, TAB, *Emitter_,<br>
                                  *TAB.createObjectWriter(OS), OS)),<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>MachObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MachObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>MachObjectWriter.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>MachObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>MachObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -1007,7 +1007,7 @@ void MachObjectWriter::WriteObject(<u></u>MCAss<br>
  }<br>
<br>
  MCObjectWriter *llvm::createMachObjectWriter(<u></u>MCMachObjectTargetWriter *MOTW,<br>
-                                             raw_ostream &OS,<br>
+                                             raw_pwrite_stream &OS,<br>
                                               bool IsLittleEndian) {<br>
    return new MachObjectWriter(MOTW, OS, IsLittleEndian);<br>
  }<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>WinCOFFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>WinCOFFObjectWriter.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>WinCOFFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>WinCOFFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -126,7 +126,7 @@ public:<br>
<br>
    bool UseBigObj;<br>
<br>
-  WinCOFFObjectWriter(<u></u>MCWinCOFFObjectTargetWriter *MOTW, raw_ostream &OS);<br>
+  WinCOFFObjectWriter(<u></u>MCWinCOFFObjectTargetWriter *MOTW, raw_pwrite_stream &OS);<br>
<br>
    void reset() override {<br>
      memset(&Header, 0, sizeof(Header));<br>
@@ -258,7 +258,7 @@ size_t COFFSection::size() {<br>
  // WinCOFFObjectWriter class implementation<br>
<br>
  WinCOFFObjectWriter::<u></u>WinCOFFObjectWriter(<u></u>MCWinCOFFObjectTargetWriter *MOTW,<br>
-                                         raw_ostream &OS)<br>
+                                         raw_pwrite_stream &OS)<br>
      : MCObjectWriter(OS, true), TargetObjectWriter(MOTW) {<br>
    memset(&Header, 0, sizeof(Header));<br>
<br>
@@ -1075,6 +1075,6 @@ void MCWinCOFFObjectTargetWriter::<u></u>anchor<br>
<br>
  MCObjectWriter *<br>
  llvm::<u></u>createWinCOFFObjectWriter(<u></u>MCWinCOFFObjectTargetWriter *MOTW,<br>
-                                raw_ostream &OS) {<br>
+                                raw_pwrite_stream &OS) {<br>
    return new WinCOFFObjectWriter(MOTW, OS);<br>
  }<br>
<br>
Modified: llvm/trunk/lib/MC/<u></u>WinCOFFStreamer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/MC/<u></u>WinCOFFStreamer.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/MC/<u></u>WinCOFFStreamer.cpp (original)<br>
+++ llvm/trunk/lib/MC/<u></u>WinCOFFStreamer.cpp Tue Apr 14 17:14:34 2015<br>
@@ -39,7 +39,7 @@ using namespace llvm;<br>
<br>
  namespace llvm {<br>
  MCWinCOFFStreamer::<u></u>MCWinCOFFStreamer(MCContext &Context, MCAsmBackend &MAB,<br>
-                                     MCCodeEmitter &CE, raw_ostream &OS)<br>
+                                     MCCodeEmitter &CE, raw_pwrite_stream &OS)<br>
      : MCObjectStreamer(Context, MAB, OS, &CE), CurSymbol(nullptr) {}<br>
<br>
  void MCWinCOFFStreamer::<u></u>EmitInstToData(const MCInst &Inst,<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64AsmBackend.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64AsmBackend.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64AsmBackend.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64AsmBackend.cpp Tue Apr 14 17:14:34 2015<br>
@@ -313,7 +313,7 @@ public:<br>
    DarwinAArch64AsmBackend(const Target &T, const MCRegisterInfo &MRI)<br>
        : AArch64AsmBackend(T), MRI(MRI) {}<br>
<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override {<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override {<br>
      return createAArch64MachObjectWriter(<u></u>OS, MachO::CPU_TYPE_ARM64,<br>
                                           MachO::CPU_SUBTYPE_ARM64_ALL);<br>
    }<br>
@@ -461,7 +461,7 @@ public:<br>
    ELFAArch64AsmBackend(const Target &T, uint8_t OSABI, bool IsLittleEndian)<br>
      : AArch64AsmBackend(T), OSABI(OSABI), IsLittleEndian(IsLittleEndian) {}<br>
<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override {<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override {<br>
      return createAArch64ELFObjectWriter(<u></u>OS, OSABI, IsLittleEndian);<br>
    }<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64ELFObjectWriter.cpp?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -248,7 +248,7 @@ unsigned AArch64ELFObjectWriter::<u></u>GetRelo<br>
    llvm_unreachable("<u></u>Unimplemented fixup -> relocation");<br>
  }<br>
<br>
-MCObjectWriter *llvm::<u></u>createAArch64ELFObjectWriter(<u></u>raw_ostream &OS,<br>
+MCObjectWriter *llvm::<u></u>createAArch64ELFObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
                                                     uint8_t OSABI,<br>
                                                     bool IsLittleEndian) {<br>
    MCELFObjectTargetWriter *MOTW =<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64ELFStreamer.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.cpp Tue Apr 14 17:14:34 2015<br>
@@ -89,8 +89,8 @@ class AArch64ELFStreamer : public MCELFS<br>
  public:<br>
    friend class AArch64TargetELFStreamer;<br>
<br>
-  AArch64ELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS,<br>
-                     MCCodeEmitter *Emitter)<br>
+  AArch64ELFStreamer(MCContext &Context, MCAsmBackend &TAB,<br>
+                     raw_pwrite_stream &OS, MCCodeEmitter *Emitter)<br>
        : MCELFStreamer(Context, TAB, OS, Emitter), MappingSymbolCounter(0),<br>
          LastEMS(EMS_None) {}<br>
<br>
@@ -211,8 +211,8 @@ MCTargetStreamer *createAArch64AsmTarget<br>
  }<br>
<br>
  MCELFStreamer *createAArch64ELFStreamer(<u></u>MCContext &Context, MCAsmBackend &TAB,<br>
-                                        raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                        bool RelaxAll) {<br>
+                                        raw_pwrite_stream &OS,<br>
+                                        MCCodeEmitter *Emitter, bool RelaxAll) {<br>
    AArch64ELFStreamer *S = new AArch64ELFStreamer(Context, TAB, OS, Emitter);<br>
    if (RelaxAll)<br>
      S->getAssembler().setRelaxAll(<u></u>true);<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64ELFStreamer.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.h (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64ELFStreamer.h Tue Apr 14 17:14:34 2015<br>
@@ -19,8 +19,8 @@<br>
  namespace llvm {<br>
<br>
  MCELFStreamer *createAArch64ELFStreamer(<u></u>MCContext &Context, MCAsmBackend &TAB,<br>
-                                        raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                        bool RelaxAll);<br>
+                                        raw_pwrite_stream &OS,<br>
+                                        MCCodeEmitter *Emitter, bool RelaxAll);<br>
  }<br>
<br>
  #endif<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64MCTargetDesc.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.cpp Tue Apr 14 17:14:34 2015<br>
@@ -123,14 +123,14 @@ static MCInstPrinter *createAArch64MCIns<br>
  }<br>
<br>
  static MCStreamer *createELFStreamer(const Triple &T, MCContext &Ctx,<br>
-                                     MCAsmBackend &TAB, raw_ostream &OS,<br>
+                                     MCAsmBackend &TAB, raw_pwrite_stream &OS,<br>
                                       MCCodeEmitter *Emitter, bool RelaxAll) {<br>
    return createAArch64ELFStreamer(Ctx, TAB, OS, Emitter, RelaxAll);<br>
  }<br>
<br>
  static MCStreamer *createMachOStreamer(MCContext &Ctx, MCAsmBackend &TAB,<br>
-                                       raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                       bool RelaxAll,<br>
+                                       raw_pwrite_stream &OS,<br>
+                                       MCCodeEmitter *Emitter, bool RelaxAll,<br>
                                         bool DWARFMustBeAtTheEnd) {<br>
    return createMachOStreamer(Ctx, TAB, OS, Emitter, RelaxAll,<br>
                               DWARFMustBeAtTheEnd,<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64MCTargetDesc.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.h (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MCTargetDesc.h Tue Apr 14 17:14:34 2015<br>
@@ -33,6 +33,7 @@ class StringRef;<br>
  class Target;<br>
  class Triple;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
<br>
  extern Target TheAArch64leTarget;<br>
  extern Target TheAArch64beTarget;<br>
@@ -48,10 +49,12 @@ MCAsmBackend *createAArch64beAsmBackend(<br>
                                          const MCRegisterInfo &MRI, StringRef TT,<br>
                                          StringRef CPU);<br>
<br>
-MCObjectWriter *createAArch64ELFObjectWriter(<u></u>raw_ostream &OS, uint8_t OSABI,<br>
+MCObjectWriter *createAArch64ELFObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
+                                             uint8_t OSABI,<br>
                                               bool IsLittleEndian);<br>
<br>
-MCObjectWriter *<u></u>createAArch64MachObjectWriter(<u></u>raw_ostream &OS, uint32_t CPUType,<br>
+MCObjectWriter *<u></u>createAArch64MachObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
+                                              uint32_t CPUType,<br>
                                                uint32_t CPUSubtype);<br>
<br>
  MCTargetStreamer *<u></u>createAArch64AsmTargetStreamer<u></u>(MCStreamer &S,<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MachObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>AArch64/MCTargetDesc/<u></u>AArch64MachObjectWriter.cpp?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MachObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/<u></u>MCTargetDesc/<u></u>AArch64MachObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -413,7 +413,7 @@ void AArch64MachObjectWriter::<u></u>RecordRelo<br>
    Writer->addRelocation(<u></u>RelSymbol, Fragment->getParent(), MRE);<br>
  }<br>
<br>
-MCObjectWriter *llvm::<u></u>createAArch64MachObjectWriter(<u></u>raw_ostream &OS,<br>
+MCObjectWriter *llvm::<u></u>createAArch64MachObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
                                                      uint32_t CPUType,<br>
                                                      uint32_t CPUSubtype) {<br>
    return createMachObjectWriter(<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendDarwin.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMAsmBackendDarwin.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendDarwin.h (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendDarwin.h Tue Apr 14 17:14:34 2015<br>
@@ -23,7 +23,7 @@ public:<br>
      HasDataInCodeSupport = true;<br>
    }<br>
<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override {<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override {<br>
      return createARMMachObjectWriter(OS, /*Is64Bit=*/false, MachO::CPU_TYPE_ARM,<br>
                                       Subtype);<br>
    }<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMAsmBackendELF.<u></u>h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMAsmBackendELF.h?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMAsmBackendELF.<u></u>h (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMAsmBackendELF.<u></u>h Tue Apr 14 17:14:34 2015<br>
@@ -18,7 +18,7 @@ public:<br>
    ARMAsmBackendELF(const Target &T, StringRef TT, uint8_t OSABI, bool IsLittle)<br>
        : ARMAsmBackend(T, TT, IsLittle), OSABI(OSABI) {}<br>
<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override {<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override {<br>
      return createARMELFObjectWriter(OS, OSABI, isLittle());<br>
    }<br>
  };<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendWinCOFF.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMAsmBackendWinCOFF.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendWinCOFF.h (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMAsmBackendWinCOFF.h Tue Apr 14 17:14:34 2015<br>
@@ -17,7 +17,7 @@ class ARMAsmBackendWinCOFF : public ARMA<br>
  public:<br>
    ARMAsmBackendWinCOFF(const Target &T, StringRef Triple)<br>
        : ARMAsmBackend(T, Triple, true) {}<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override {<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override {<br>
      return createARMWinCOFFObjectWriter(<u></u>OS, /*Is64Bit=*/false);<br>
    }<br>
  };<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMELFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMELFObjectWriter.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMELFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMELFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -251,7 +251,7 @@ unsigned ARMELFObjectWriter::<u></u>GetRelocTyp<br>
    return Type;<br>
  }<br>
<br>
-MCObjectWriter *llvm::<u></u>createARMELFObjectWriter(raw_<u></u>ostream &OS,<br>
+MCObjectWriter *llvm::<u></u>createARMELFObjectWriter(raw_<u></u>pwrite_stream &OS,<br>
                                                 uint8_t OSABI,<br>
                                                 bool IsLittleEndian) {<br>
    MCELFObjectTargetWriter *MOTW = new ARMELFObjectWriter(OSABI);<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMELFStreamer.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMELFStreamer.cpp?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMELFStreamer.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMELFStreamer.<u></u>cpp Tue Apr 14 17:14:34 2015<br>
@@ -472,7 +472,7 @@ class ARMELFStreamer : public MCELFStrea<br>
  public:<br>
    friend class ARMTargetELFStreamer;<br>
<br>
-  ARMELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_ostream &OS,<br>
+  ARMELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_pwrite_stream &OS,<br>
                   MCCodeEmitter *Emitter, bool IsThumb)<br>
        : MCELFStreamer(Context, TAB, OS, Emitter), IsThumb(IsThumb),<br>
          MappingSymbolCounter(0), LastEMS(EMS_None) {<br>
@@ -1382,8 +1382,9 @@ MCTargetStreamer *createARMObjectTargetS<br>
  }<br>
<br>
  MCELFStreamer *createARMELFStreamer(<u></u>MCContext &Context, MCAsmBackend &TAB,<br>
-                                    raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                    bool RelaxAll, bool IsThumb) {<br>
+                                    raw_pwrite_stream &OS,<br>
+                                    MCCodeEmitter *Emitter, bool RelaxAll,<br>
+                                    bool IsThumb) {<br>
      ARMELFStreamer *S = new ARMELFStreamer(Context, TAB, OS, Emitter, IsThumb);<br>
      // FIXME: This should eventually end up somewhere else where more<br>
      // intelligent flag decisions can be made. For now we are just maintaining<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMMCTargetDesc.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.<u></u>cpp Tue Apr 14 17:14:34 2015<br>
@@ -310,14 +310,14 @@ static MCCodeGenInfo *createARMMCCodeGen<br>
  }<br>
<br>
  static MCStreamer *createELFStreamer(const Triple &T, MCContext &Ctx,<br>
-                                     MCAsmBackend &MAB, raw_ostream &OS,<br>
+                                     MCAsmBackend &MAB, raw_pwrite_stream &OS,<br>
                                       MCCodeEmitter *Emitter, bool RelaxAll) {<br>
    return createARMELFStreamer(Ctx, MAB, OS, Emitter, false,<br>
                                T.getArch() == Triple::thumb);<br>
  }<br>
<br>
  static MCStreamer *createARMMachOStreamer(<u></u>MCContext &Ctx, MCAsmBackend &MAB,<br>
-                                          raw_ostream &OS,<br>
+                                          raw_pwrite_stream &OS,<br>
                                            MCCodeEmitter *Emitter, bool RelaxAll,<br>
                                            bool DWARFMustBeAtTheEnd) {<br>
    return createMachOStreamer(Ctx, MAB, OS, Emitter, false, DWARFMustBeAtTheEnd);<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMMCTargetDesc.h?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.h (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/ARMMCTargetDesc.h Tue Apr 14 17:14:34 2015<br>
@@ -34,6 +34,7 @@ class StringRef;<br>
  class Target;<br>
  class Triple;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
<br>
  extern Target TheARMLETarget, TheThumbLETarget;<br>
  extern Target TheARMBETarget, TheThumbBETarget;<br>
@@ -82,20 +83,21 @@ MCAsmBackend *createThumbBEAsmBackend(co<br>
  // Construct a PE/COFF machine code streamer which will generate a PE/COFF<br>
  // object file.<br>
  MCStreamer *createARMWinCOFFStreamer(<u></u>MCContext &Context, MCAsmBackend &MAB,<br>
-                                     raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                     bool RelaxAll);<br>
+                                     raw_pwrite_stream &OS,<br>
+                                     MCCodeEmitter *Emitter, bool RelaxAll);<br>
<br>
  /// Construct an ELF Mach-O object writer.<br>
-MCObjectWriter *createARMELFObjectWriter(raw_<u></u>ostream &OS, uint8_t OSABI,<br>
+MCObjectWriter *createARMELFObjectWriter(raw_<u></u>pwrite_stream &OS, uint8_t OSABI,<br>
                                           bool IsLittleEndian);<br>
<br>
  /// Construct an ARM Mach-O object writer.<br>
-MCObjectWriter *createARMMachObjectWriter(<u></u>raw_ostream &OS, bool Is64Bit,<br>
+MCObjectWriter *createARMMachObjectWriter(<u></u>raw_pwrite_stream &OS, bool Is64Bit,<br>
                                            uint32_t CPUType,<br>
                                            uint32_t CPUSubtype);<br>
<br>
  /// Construct an ARM PE/COFF object writer.<br>
-MCObjectWriter *createARMWinCOFFObjectWriter(<u></u>raw_ostream &OS, bool Is64Bit);<br>
+MCObjectWriter *createARMWinCOFFObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
+                                             bool Is64Bit);<br>
<br>
  /// Construct ARM Mach-O relocation info.<br>
  MCRelocationInfo *createARMMachORelocationInfo(<u></u>MCContext &Ctx);<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMMachObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMMachObjectWriter.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMMachObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMMachObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -472,8 +472,8 @@ void ARMMachObjectWriter::<u></u>RecordRelocati<br>
    Writer->addRelocation(<u></u>RelSymbol, Fragment->getParent(), MRE);<br>
  }<br>
<br>
-MCObjectWriter *llvm::<u></u>createARMMachObjectWriter(raw_<u></u>ostream &OS, bool Is64Bit,<br>
-                                                uint32_t CPUType,<br>
+MCObjectWriter *llvm::<u></u>createARMMachObjectWriter(raw_<u></u>pwrite_stream &OS,<br>
+                                                bool Is64Bit, uint32_t CPUType,<br>
                                                  uint32_t CPUSubtype) {<br>
    return createMachObjectWriter(new ARMMachObjectWriter(Is64Bit,<br>
                                                          CPUType,<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMWinCOFFObjectWriter.cpp?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -82,7 +82,8 @@ bool ARMWinCOFFObjectWriter::<u></u>recordReloc<br>
  }<br>
<br>
  namespace llvm {<br>
-MCObjectWriter *createARMWinCOFFObjectWriter(<u></u>raw_ostream &OS, bool Is64Bit) {<br>
+MCObjectWriter *createARMWinCOFFObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
+                                             bool Is64Bit) {<br>
    MCWinCOFFObjectTargetWriter *MOTW = new ARMWinCOFFObjectWriter(<u></u>Is64Bit);<br>
    return createWinCOFFObjectWriter(<u></u>MOTW, OS);<br>
  }<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFStreamer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>ARM/MCTargetDesc/<u></u>ARMWinCOFFStreamer.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFStreamer.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/<u></u>MCTargetDesc/<u></u>ARMWinCOFFStreamer.cpp Tue Apr 14 17:14:34 2015<br>
@@ -16,8 +16,8 @@ namespace {<br>
  class ARMWinCOFFStreamer : public MCWinCOFFStreamer {<br>
  public:<br>
    ARMWinCOFFStreamer(MCContext &C, MCAsmBackend &AB, MCCodeEmitter &CE,<br>
-                     raw_ostream &OS)<br>
-    : MCWinCOFFStreamer(C, AB, CE, OS) { }<br>
+                     raw_pwrite_stream &OS)<br>
+      : MCWinCOFFStreamer(C, AB, CE, OS) {}<br>
<br>
    void EmitAssemblerFlag(<u></u>MCAssemblerFlag Flag) override;<br>
    void EmitThumbFunc(MCSymbol *Symbol) override;<br>
@@ -38,7 +38,8 @@ void ARMWinCOFFStreamer::<u></u>EmitThumbFunc(M<br>
  }<br>
<br>
  MCStreamer *llvm::<u></u>createARMWinCOFFStreamer(<u></u>MCContext &Context,<br>
-                                           MCAsmBackend &MAB, raw_ostream &OS,<br>
+                                           MCAsmBackend &MAB,<br>
+                                           raw_pwrite_stream &OS,<br>
                                             MCCodeEmitter *Emitter,<br>
                                             bool RelaxAll) {<br>
    return new ARMWinCOFFStreamer(Context, MAB, *Emitter, OS);<br>
<br>
Modified: llvm/trunk/lib/Target/<u></u>CppBackend/CPPBackend.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>CppBackend/CPPBackend.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/<u></u>CppBackend/CPPBackend.cpp (original)<br>
+++ llvm/trunk/lib/Target/<u></u>CppBackend/CPPBackend.cpp Tue Apr 14 17:14:34 2015<br>
@@ -2149,11 +2149,9 @@ char CppWriter::ID = 0;<br>
  //                       External Interface declaration<br>
  //===-------------------------<u></u>------------------------------<u></u>---------------===//<br>
<br>
-bool CPPTargetMachine::<u></u>addPassesToEmitFile(<u></u>PassManagerBase &PM, raw_ostream &o,<br>
-                                           CodeGenFileType FileType,<br>
-                                           bool DisableVerify,<br>
-                                           AnalysisID StartAfter,<br>
-                                           AnalysisID StopAfter) {<br>
+bool CPPTargetMachine::<u></u>addPassesToEmitFile(<br>
+    PassManagerBase &PM, raw_pwrite_stream &o, CodeGenFileType FileType,<br>
+    bool DisableVerify, AnalysisID StartAfter, AnalysisID StopAfter) {<br>
    if (FileType != TargetMachine::CGFT_<u></u>AssemblyFile)<br>
      return true;<br>
    auto FOut = llvm::make_unique<formatted_<u></u>raw_ostream>(o);<br>
<br>
Modified: llvm/trunk/lib/Target/<u></u>CppBackend/CPPTargetMachine.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/CPPTargetMachine.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>CppBackend/CPPTargetMachine.h?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/<u></u>CppBackend/CPPTargetMachine.h (original)<br>
+++ llvm/trunk/lib/Target/<u></u>CppBackend/CPPTargetMachine.h Tue Apr 14 17:14:34 2015<br>
@@ -29,7 +29,7 @@ struct CPPTargetMachine : public TargetM<br>
        : TargetMachine(T, "", TT, CPU, FS, Options) {}<br>
<br>
  public:<br>
-  bool addPassesToEmitFile(<u></u>PassManagerBase &PM, raw_ostream &Out,<br>
+  bool addPassesToEmitFile(<u></u>PassManagerBase &PM, raw_pwrite_stream &Out,<br>
                             CodeGenFileType FileType, bool DisableVerify,<br>
                             AnalysisID StartAfter,<br>
                             AnalysisID StopAfter) override;<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonAsmBackend.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Hexagon/MCTargetDesc/<u></u>HexagonAsmBackend.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonAsmBackend.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonAsmBackend.cpp Tue Apr 14 17:14:34 2015<br>
@@ -57,7 +57,7 @@ public:<br>
    ELFHexagonAsmBackend(Target const &T, uint8_t OSABI)<br>
        : HexagonAsmBackend(T), OSABI(OSABI) {}<br>
<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override {<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override {<br>
      StringRef CPU("HexagonV4");<br>
      return createHexagonELFObjectWriter(<u></u>OS, OSABI, CPU);<br>
    }<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonELFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Hexagon/MCTargetDesc/<u></u>HexagonELFObjectWriter.cpp?<u></u>rev=234950&r1=234949&r2=<u></u>234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonELFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonELFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -55,7 +55,7 @@ unsigned HexagonELFObjectWriter::<u></u>GetRelo<br>
    return Type;<br>
  }<br>
<br>
-MCObjectWriter *llvm::<u></u>createHexagonELFObjectWriter(<u></u>raw_ostream &OS,<br>
+MCObjectWriter *llvm::<u></u>createHexagonELFObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
                                                     uint8_t OSABI,<br>
                                                     StringRef CPU) {<br>
    MCELFObjectTargetWriter *MOTW = new HexagonELFObjectWriter(OSABI, CPU);<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonMCTargetDesc.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Hexagon/MCTargetDesc/<u></u>HexagonMCTargetDesc.h?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonMCTargetDesc.h (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/<u></u>MCTargetDesc/<u></u>HexagonMCTargetDesc.h Tue Apr 14 17:14:34 2015<br>
@@ -27,6 +27,7 @@ class MCSubtargetInfo;<br>
  class Target;<br>
  class StringRef;<br>
  class raw_ostream;<br>
+class raw_pwrite_stream;<br>
<br>
  extern Target TheHexagonTarget;<br>
<br>
@@ -40,8 +41,8 @@ MCAsmBackend *createHexagonAsmBackend(Ta<br>
                                        MCRegisterInfo const &MRI, StringRef TT,<br>
                                        StringRef CPU);<br>
<br>
-MCObjectWriter *createHexagonELFObjectWriter(<u></u>raw_ostream &OS, uint8_t OSABI,<br>
-                                             StringRef CPU);<br>
+MCObjectWriter *createHexagonELFObjectWriter(<u></u>raw_pwrite_stream &OS,<br>
+                                             uint8_t OSABI, StringRef CPU);<br>
<br>
  } // End llvm namespace<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Mips/MCTargetDesc/<u></u>MipsAsmBackend.cpp?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.<u></u>cpp Tue Apr 14 17:14:34 2015<br>
@@ -155,7 +155,8 @@ static unsigned adjustFixupValue(const M<br>
    return Value;<br>
  }<br>
<br>
-MCObjectWriter *MipsAsmBackend::<u></u>createObjectWriter(raw_ostream &OS) const {<br>
+MCObjectWriter *<br>
+MipsAsmBackend::<u></u>createObjectWriter(raw_pwrite_<u></u>stream &OS) const {<br>
    return createMipsELFObjectWriter(OS,<br>
      MCELFObjectTargetWriter::<u></u>getOSABI(OSType), IsLittle, Is64Bit);<br>
  }<br>
<br>
Modified: llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Mips/MCTargetDesc/<u></u>MipsAsmBackend.h?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.h (original)<br>
+++ llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsAsmBackend.h Tue Apr 14 17:14:34 2015<br>
@@ -36,7 +36,7 @@ public:<br>
                   bool Is64Bit)<br>
        : MCAsmBackend(), OSType(OSType), IsLittle(IsLittle), Is64Bit(Is64Bit) {}<br>
<br>
-  MCObjectWriter *createObjectWriter(raw_<u></u>ostream &OS) const override;<br>
+  MCObjectWriter *createObjectWriter(raw_<u></u>pwrite_stream &OS) const override;<br>
<br>
    void applyFixup(const MCFixup &Fixup, char *Data, unsigned DataSize,<br>
                    uint64_t Value, bool IsPCRel) const override;<br>
<br>
Modified: llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/<u></u>MipsELFObjectWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Mips/MCTargetDesc/<u></u>MipsELFObjectWriter.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/<u></u>MipsELFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/<u></u>MipsELFObjectWriter.cpp Tue Apr 14 17:14:34 2015<br>
@@ -444,7 +444,8 @@ MipsELFObjectWriter::<u></u>needsRelocateWithSy<br>
    }<br>
  }<br>
<br>
-MCObjectWriter *llvm::<u></u>createMipsELFObjectWriter(raw_<u></u>ostream &OS, uint8_t OSABI,<br>
+MCObjectWriter *llvm::<u></u>createMipsELFObjectWriter(raw_<u></u>pwrite_stream &OS,<br>
+                                                uint8_t OSABI,<br>
                                                  bool IsLittleEndian,<br>
                                                  bool Is64Bit) {<br>
    MCELFObjectTargetWriter *MOTW =<br>
<br>
Modified: llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Mips/MCTargetDesc/<u></u>MipsELFStreamer.cpp?rev=<u></u>234950&r1=234949&r2=234950&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.<u></u>cpp Tue Apr 14 17:14:34 2015<br>
@@ -70,7 +70,8 @@ void MipsELFStreamer::<u></u>EmitMipsOptionReco<br>
  }<br>
<br>
  MCELFStreamer *llvm::createMipsELFStreamer(<u></u>MCContext &Context,<br>
-                                           MCAsmBackend &MAB, raw_ostream &OS,<br>
+                                           MCAsmBackend &MAB,<br>
+                                           raw_pwrite_stream &OS,<br>
                                             MCCodeEmitter *Emitter,<br>
                                             bool RelaxAll) {<br>
    return new MipsELFStreamer(Context, MAB, OS, Emitter);<br>
<br>
Modified: llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h?rev=234950&r1=234949&r2=234950&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/Target/<u></u>Mips/MCTargetDesc/<u></u>MipsELFStreamer.h?rev=234950&<u></u>r1=234949&r2=234950&view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.h (original)<br>
+++ llvm/trunk/lib/Target/Mips/<u></u>MCTargetDesc/MipsELFStreamer.h Tue Apr 14 17:14:34 2015<br>
@@ -33,7 +33,7 @@ class MipsELFStreamer : public MCELFStre<br>
<br>
<br>
  public:<br>
-  MipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_ostream &OS,<br>
+  MipsELFStreamer(MCContext &Context, MCAsmBackend &MAB, raw_pwrite_stream &OS,<br>
                    MCCodeEmitter *Emitter)<br>
        : MCELFStreamer(Context, MAB, OS, Emitter) {<br>
<br>
@@ -68,7 +68,7 @@ public:<br>
  };<br>
<br>
  MCELFStreamer *createMipsELFStreamer(<u></u>MCContext &Context, MCAsmBackend &MAB,<br>
-                                     raw_ostream &OS, MCCodeEmitter *Emitter,<br>
-                                     bool RelaxAll);<br>
+                                     raw_pwrite_stream &OS,<br>
+                                     MCCodeEmitter *Emitter, bool RelaxAll);</blockquote>
</blockquote></div><br></div>