From: Lang Hames Date: Mon, 9 Oct 2017 22:38:13 +0000 (+0000) Subject: [MC] Plumb unique_ptr through createMachObjectWriter X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=331cf989fcb6b81a0d2ca5ca1aac424671c25b00;p=llvm [MC] Plumb unique_ptr through createMachObjectWriter to MCObjectWriter's constructor. MCObjectWriter takes ownership of its MCMachObjectTargetWriter argument -- this patch plumbs that ownership relationship through the constructor (which previously took raw MCMachObjectTargetWriter*) and the createMachObjectWriter function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315245 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCMachObjectWriter.h b/include/llvm/MC/MCMachObjectWriter.h index 42dc90da304..6e7b9bcc03a 100644 --- a/include/llvm/MC/MCMachObjectWriter.h +++ b/include/llvm/MC/MCMachObjectWriter.h @@ -117,9 +117,10 @@ class MachObjectWriter : public MCObjectWriter { MachSymbolData *findSymbolData(const MCSymbol &Sym); public: - MachObjectWriter(MCMachObjectTargetWriter *MOTW, raw_pwrite_stream &OS, - bool IsLittleEndian) - : MCObjectWriter(OS, IsLittleEndian), TargetObjectWriter(MOTW) {} + MachObjectWriter(std::unique_ptr MOTW, + raw_pwrite_stream &OS, bool IsLittleEndian) + : MCObjectWriter(OS, IsLittleEndian), + TargetObjectWriter(std::move(MOTW)) {} const MCSymbol &findAliasedSymbol(const MCSymbol &Sym) const; @@ -269,9 +270,9 @@ public: /// \param MOTW - The target specific Mach-O writer subclass. /// \param OS - The stream to write to. /// \returns The constructed object writer. -MCObjectWriter *createMachObjectWriter(MCMachObjectTargetWriter *MOTW, - raw_pwrite_stream &OS, - bool IsLittleEndian); +MCObjectWriter * +createMachObjectWriter(std::unique_ptr MOTW, + raw_pwrite_stream &OS, bool IsLittleEndian); } // end namespace llvm diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index 62bf0a58fdf..c2196a77e18 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -994,8 +994,8 @@ void MachObjectWriter::writeObject(MCAssembler &Asm, } } -MCObjectWriter *llvm::createMachObjectWriter(MCMachObjectTargetWriter *MOTW, - raw_pwrite_stream &OS, - bool IsLittleEndian) { - return new MachObjectWriter(MOTW, OS, IsLittleEndian); +MCObjectWriter * +llvm::createMachObjectWriter(std::unique_ptr MOTW, + raw_pwrite_stream &OS, bool IsLittleEndian) { + return new MachObjectWriter(std::move(MOTW), OS, IsLittleEndian); } diff --git a/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp b/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp index 19b2576f689..a06b038d090 100644 --- a/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp +++ b/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp @@ -434,6 +434,6 @@ MCObjectWriter *llvm::createAArch64MachObjectWriter(raw_pwrite_stream &OS, uint32_t CPUType, uint32_t CPUSubtype) { return createMachObjectWriter( - new AArch64MachObjectWriter(CPUType, CPUSubtype), OS, + llvm::make_unique(CPUType, CPUSubtype), OS, /*IsLittleEndian=*/true); } diff --git a/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp b/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp index f371699e9fc..d375b640c94 100644 --- a/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp +++ b/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp @@ -487,8 +487,7 @@ void ARMMachObjectWriter::recordRelocation(MachObjectWriter *Writer, MCObjectWriter *llvm::createARMMachObjectWriter(raw_pwrite_stream &OS, bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) { - return createMachObjectWriter(new ARMMachObjectWriter(Is64Bit, - CPUType, - CPUSubtype), - OS, /*IsLittleEndian=*/true); + return createMachObjectWriter( + llvm::make_unique(Is64Bit, CPUType, CPUSubtype), OS, + /*IsLittleEndian=*/true); } diff --git a/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp b/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp index d5506277ca8..baa6707e192 100644 --- a/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp +++ b/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp @@ -378,6 +378,6 @@ MCObjectWriter *llvm::createPPCMachObjectWriter(raw_pwrite_stream &OS, bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) { return createMachObjectWriter( - new PPCMachObjectWriter(Is64Bit, CPUType, CPUSubtype), OS, + llvm::make_unique(Is64Bit, CPUType, CPUSubtype), OS, /*IsLittleEndian=*/false); } diff --git a/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp index 8f2017e990c..3b8d90ea36c 100644 --- a/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp +++ b/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp @@ -600,8 +600,7 @@ void X86MachObjectWriter::RecordX86Relocation(MachObjectWriter *Writer, MCObjectWriter *llvm::createX86MachObjectWriter(raw_pwrite_stream &OS, bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) { - return createMachObjectWriter(new X86MachObjectWriter(Is64Bit, - CPUType, - CPUSubtype), - OS, /*IsLittleEndian=*/true); + return createMachObjectWriter( + llvm::make_unique(Is64Bit, CPUType, CPUSubtype), OS, + /*IsLittleEndian=*/true); }