summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCObjectStreamer.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2017-10-11 01:57:21 +0000
committerLang Hames <lhames@gmail.com>2017-10-11 01:57:21 +0000
commit02d330548d07cfbbb7cd496c94a514802527dfeb (patch)
tree60e57bf4af3cfd30f61c5f4b4349aa2f0aef197f /llvm/lib/MC/MCObjectStreamer.cpp
parent6b394caaf1c84ecd73469eacebba9453f9772552 (diff)
downloadbcm5719-llvm-02d330548d07cfbbb7cd496c94a514802527dfeb.tar.gz
bcm5719-llvm-02d330548d07cfbbb7cd496c94a514802527dfeb.zip
[MC] Have MCObjectStreamer take its MCAsmBackend argument via unique_ptr.
MCObjectStreamer owns its MCAsmBackend -- this fixes the types to reflect that, and allows us to remove another instance of MCObjectStreamer's weird "holding ownership via someone else's reference" trick. llvm-svn: 315410
Diffstat (limited to 'llvm/lib/MC/MCObjectStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCObjectStreamer.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 46d57265d85..ba45d24fd08 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -25,16 +25,16 @@
#include "llvm/Support/TargetRegistry.h"
using namespace llvm;
-MCObjectStreamer::MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB,
+MCObjectStreamer::MCObjectStreamer(MCContext &Context,
+ std::unique_ptr<MCAsmBackend> TAB,
raw_pwrite_stream &OS,
MCCodeEmitter *Emitter_)
- : MCStreamer(Context), ObjectWriter(TAB.createObjectWriter(OS)),
- Assembler(llvm::make_unique<MCAssembler>(Context, TAB, *Emitter_,
- *ObjectWriter)),
+ : MCStreamer(Context), ObjectWriter(TAB->createObjectWriter(OS)),
+ TAB(std::move(TAB)), Assembler(llvm::make_unique<MCAssembler>(
+ Context, *this->TAB, *Emitter_, *ObjectWriter)),
EmitEHFrame(true), EmitDebugFrame(false) {}
MCObjectStreamer::~MCObjectStreamer() {
- delete &Assembler->getBackend();
delete &Assembler->getEmitter();
}
OpenPOWER on IntegriCloud