summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCStreamer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-01-26 06:06:37 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-01-26 06:06:37 +0000
commit24ea09ef7d775934ef79b4a7cf871ecc2e501a88 (patch)
treeb0727927bd4b21c0c92251f57f61d7abe639d1b6 /llvm/lib/MC/MCStreamer.cpp
parent56c4611340cbcf6a9a703abaec220e81c71a84a8 (diff)
downloadbcm5719-llvm-24ea09ef7d775934ef79b4a7cf871ecc2e501a88.tar.gz
bcm5719-llvm-24ea09ef7d775934ef79b4a7cf871ecc2e501a88.zip
Construct the MCStreamer before constructing the MCTargetStreamer.
This has a few advantages: * Only targets that use a MCTargetStreamer have to worry about it. * There is never a MCTargetStreamer without a MCStreamer, so we can use a reference. * A MCTargetStreamer can talk to the MCStreamer in its constructor. llvm-svn: 200129
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCStreamer.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 0b7c9067190..8cbfc5c83e5 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -25,14 +25,17 @@ using namespace llvm;
// Pin the vtables to this file.
MCTargetStreamer::~MCTargetStreamer() {}
+
+MCTargetStreamer::MCTargetStreamer(MCStreamer &S) : Streamer(S) {
+ S.setTargetStreamer(this);
+}
+
void MCTargetStreamer::emitLabel(MCSymbol *Symbol) {}
-MCStreamer::MCStreamer(MCContext &Ctx, MCTargetStreamer *TargetStreamer)
- : Context(Ctx), TargetStreamer(TargetStreamer), EmitEHFrame(true),
- EmitDebugFrame(false), CurrentW64UnwindInfo(0), LastSymbol(0) {
+MCStreamer::MCStreamer(MCContext &Ctx)
+ : Context(Ctx), EmitEHFrame(true), EmitDebugFrame(false),
+ CurrentW64UnwindInfo(0), LastSymbol(0) {
SectionStack.push_back(std::pair<MCSectionSubPair, MCSectionSubPair>());
- if (TargetStreamer)
- TargetStreamer->setStreamer(this);
}
MCStreamer::~MCStreamer() {
OpenPOWER on IntegriCloud