<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/100303>100303</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            WinCOFFObjectWriter should not access WinCOFFWriter, which is supposed to be internal
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          MaskRay
      </td>
    </tr>
</table>

<pre>
    @HaohaiWen  https://reviews.llvm.org/D152340 split WinCOFFObjectWriter into WinCOFFObjectWriter and WinCOFFWriter as a prerequisite to implement split DWARF.

`WinCOFFObjectWriter` is supposed to be public, accessible by MCWinCOFFStreamer.cpp, while `WinCOFFWriter` should remain internal. As such, WinCOFFObjectWriter should not hold `unique_ptr<WinCOFFWriter>` instances.

The relationship should be made similar to ELFObjectWriter and ELFWriter. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEkkGPmzAQhX-NuYwWOYZAOHBIk0U97GqlbaUcKxsmYVpjsx6zq_33FSlpFDVSLyDZnvfmzXyamU4OsRbrL2K9T_QUex_qZ82_XvVnYnz3WYtcftW-13RAB9DHOLLItkI1QjUB3wk_OLX2fUh9OAnV7FdrleUSeLQU4UBu99I0L-YntvEQKGIActHfvdCuu5xfThg0jAEDvk3EFBGiBxpGiwO6uHjsD9vXJhVyL-R2-Rbyjr4oJBADT-PoGbtZyiCMk7HUCrUD3bbITMYimE943i0S32JAPWBI23Gcn330ZBGuFldx7v1kOwg4aHJzTAxO2xS2s2nbz8X3Yi9lzkfove1m6cnR24Q_xhhEtrv1yR7PORxH7Vrkm9zfe4SAVkfyjnsaL9IGYdAdAtNAVoc5-ePTv7N_fFpMUki6OuuqrNIJ1qtSrcpqsylWSV8bc8TCFEfcyCI7bkxZdaaojqrLWlnleZtQraTKZalyuVZlvkrzzTFTZVapqsyNKYzI5Twg-xeahJgnrFdSZjJLrDZo-QykUg4_4HwrlJr5DPVc9GCmE4tcWuJ4ZS-JFC3W_5nwnyXfYrZste3v4HHZYjIFW9_Cf6LYTyZt_SBUM3ex_B7G4GdzoZpz7yxUs4R7r9XvAAAA__9qdSXR">