change AsmPrinter to switch sections using AsmStreamer instead of
doing it directly. This requires const'izing a bunch of stuff that
took sections, but this seems like the right semantic thing to do:
emitting a label to a section shouldn't mutate the MCSection object
itself, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79227 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp
index db39fb8..60d66f9 100644
--- a/lib/MC/MCAsmStreamer.cpp
+++ b/lib/MC/MCAsmStreamer.cpp
@@ -24,7 +24,7 @@
raw_ostream &OS;
const TargetAsmInfo &TAI;
AsmPrinter *Printer;
- MCSection *CurSection;
+ const MCSection *CurSection;
public:
MCAsmStreamer(MCContext &Context, raw_ostream &_OS, const TargetAsmInfo &tai,
AsmPrinter *_AsmPrinter)
@@ -35,7 +35,7 @@
/// @name MCStreamer Interface
/// @{
- virtual void SwitchSection(MCSection *Section);
+ virtual void SwitchSection(const MCSection *Section);
virtual void EmitLabel(MCSymbol *Symbol);
@@ -98,12 +98,10 @@
truncateToSize(Value.getConstant(), Bytes));
}
-void MCAsmStreamer::SwitchSection(MCSection *Section) {
+void MCAsmStreamer::SwitchSection(const MCSection *Section) {
if (Section != CurSection) {
CurSection = Section;
-
- // FIXME: Needs TargetAsmInfo!
- Section->PrintSwitchToSection(*(const TargetAsmInfo*)0, OS);
+ Section->PrintSwitchToSection(TAI, OS);
}
}