mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-14 17:28:53 +00:00
[MC] Plumb unique_ptr<MCMachObjectTargetWriter> 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. llvm-svn: 315245
This commit is contained in:
parent
67b84bcdf0
commit
976ebea58c
@ -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<MCMachObjectTargetWriter> 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<MCMachObjectTargetWriter> MOTW,
|
||||
raw_pwrite_stream &OS, bool IsLittleEndian);
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
|
@ -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<MCMachObjectTargetWriter> MOTW,
|
||||
raw_pwrite_stream &OS, bool IsLittleEndian) {
|
||||
return new MachObjectWriter(std::move(MOTW), OS, IsLittleEndian);
|
||||
}
|
||||
|
@ -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<AArch64MachObjectWriter>(CPUType, CPUSubtype), OS,
|
||||
/*IsLittleEndian=*/true);
|
||||
}
|
||||
|
@ -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<ARMMachObjectWriter>(Is64Bit, CPUType, CPUSubtype), OS,
|
||||
/*IsLittleEndian=*/true);
|
||||
}
|
||||
|
@ -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<PPCMachObjectWriter>(Is64Bit, CPUType, CPUSubtype), OS,
|
||||
/*IsLittleEndian=*/false);
|
||||
}
|
||||
|
@ -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<X86MachObjectWriter>(Is64Bit, CPUType, CPUSubtype), OS,
|
||||
/*IsLittleEndian=*/true);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user