/// \param MOTW - The target specific WinCOFF writer subclass.
/// \param OS - The stream to write to.
/// \returns The constructed object writer.
- MCObjectWriter *createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
- raw_pwrite_stream &OS);
+ MCObjectWriter *
+ createWinCOFFObjectWriter(std::unique_ptr<MCWinCOFFObjectTargetWriter> MOTW,
+ raw_pwrite_stream &OS);
} // end namespace llvm
#endif // LLVM_MC_MCWINCOFFOBJECTWRITER_H
bool UseBigObj;
- WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW, raw_pwrite_stream &OS);
+ WinCOFFObjectWriter(std::unique_ptr<MCWinCOFFObjectTargetWriter> MOTW,
+ raw_pwrite_stream &OS);
void reset() override {
memset(&Header, 0, sizeof(Header));
//------------------------------------------------------------------------------
// WinCOFFObjectWriter class implementation
-WinCOFFObjectWriter::WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
- raw_pwrite_stream &OS)
- : MCObjectWriter(OS, true), TargetObjectWriter(MOTW) {
+WinCOFFObjectWriter::WinCOFFObjectWriter(
+ std::unique_ptr<MCWinCOFFObjectTargetWriter> MOTW, raw_pwrite_stream &OS)
+ : MCObjectWriter(OS, true), TargetObjectWriter(std::move(MOTW)) {
Header.Machine = TargetObjectWriter->getMachine();
}
//------------------------------------------------------------------------------
// WinCOFFObjectWriter factory function
-MCObjectWriter *
-llvm::createWinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
- raw_pwrite_stream &OS) {
- return new WinCOFFObjectWriter(MOTW, OS);
+MCObjectWriter *llvm::createWinCOFFObjectWriter(
+ std::unique_ptr<MCWinCOFFObjectTargetWriter> MOTW, raw_pwrite_stream &OS) {
+ return new WinCOFFObjectWriter(std::move(MOTW), OS);
}
namespace llvm {
MCObjectWriter *createAArch64WinCOFFObjectWriter(raw_pwrite_stream &OS) {
- MCWinCOFFObjectTargetWriter *MOTW = new AArch64WinCOFFObjectWriter();
- return createWinCOFFObjectWriter(MOTW, OS);
+ auto MOTW = llvm::make_unique<AArch64WinCOFFObjectWriter>();
+ return createWinCOFFObjectWriter(std::move(MOTW), OS);
}
} // end namespace llvm
MCObjectWriter *createARMWinCOFFObjectWriter(raw_pwrite_stream &OS,
bool Is64Bit) {
- MCWinCOFFObjectTargetWriter *MOTW = new ARMWinCOFFObjectWriter(Is64Bit);
- return createWinCOFFObjectWriter(MOTW, OS);
+ auto MOTW = llvm::make_unique<ARMWinCOFFObjectWriter>(Is64Bit);
+ return createWinCOFFObjectWriter(std::move(MOTW), OS);
}
} // end namespace llvm
MCObjectWriter *llvm::createX86WinCOFFObjectWriter(raw_pwrite_stream &OS,
bool Is64Bit) {
- MCWinCOFFObjectTargetWriter *MOTW = new X86WinCOFFObjectWriter(Is64Bit);
- return createWinCOFFObjectWriter(MOTW, OS);
+ auto MOTW = llvm::make_unique<X86WinCOFFObjectWriter>(Is64Bit);
+ return createWinCOFFObjectWriter(std::move(MOTW), OS);
}