[MC] Plumb unique_ptr<MCELFObjectTargetWriter> through createELFObjectWriter to
ELFObjectWriter's constructor. Fixes the same ownership issue for ELF that r315245 did for MachO: ELFObjectWriter takes ownership of its MCELFObjectTargetWriter, so we want to pass this through to the constructor via a unique_ptr, rather than a raw ptr. llvm-svn: 315254
This commit is contained in:
@@ -162,9 +162,10 @@ class ELFObjectWriter : public MCObjectWriter {
|
||||
bool ZLibStyle, unsigned Alignment);
|
||||
|
||||
public:
|
||||
ELFObjectWriter(MCELFObjectTargetWriter *MOTW, raw_pwrite_stream &OS,
|
||||
bool IsLittleEndian)
|
||||
: MCObjectWriter(OS, IsLittleEndian), TargetObjectWriter(MOTW) {}
|
||||
ELFObjectWriter(std::unique_ptr<MCELFObjectTargetWriter> MOTW,
|
||||
raw_pwrite_stream &OS, bool IsLittleEndian)
|
||||
: MCObjectWriter(OS, IsLittleEndian),
|
||||
TargetObjectWriter(std::move(MOTW)) {}
|
||||
|
||||
~ELFObjectWriter() override = default;
|
||||
|
||||
@@ -1386,8 +1387,8 @@ bool ELFObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(
|
||||
InSet, IsPCRel);
|
||||
}
|
||||
|
||||
MCObjectWriter *llvm::createELFObjectWriter(MCELFObjectTargetWriter *MOTW,
|
||||
raw_pwrite_stream &OS,
|
||||
bool IsLittleEndian) {
|
||||
return new ELFObjectWriter(MOTW, OS, IsLittleEndian);
|
||||
MCObjectWriter *
|
||||
llvm::createELFObjectWriter(std::unique_ptr<MCELFObjectTargetWriter> MOTW,
|
||||
raw_pwrite_stream &OS, bool IsLittleEndian) {
|
||||
return new ELFObjectWriter(std::move(MOTW), OS, IsLittleEndian);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user