diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-01-26 06:06:37 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-01-26 06:06:37 +0000 |
commit | 24ea09ef7d775934ef79b4a7cf871ecc2e501a88 (patch) | |
tree | b0727927bd4b21c0c92251f57f61d7abe639d1b6 /llvm/lib/MC/MCStreamer.cpp | |
parent | 56c4611340cbcf6a9a703abaec220e81c71a84a8 (diff) | |
download | bcm5719-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.cpp | 13 |
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() { |