//===----------------------------------------------------------------------===//
#include "llvm/MC/MCSection.h"
-#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCAsmInfo.h"
+#include "llvm/MC/MCContext.h"
+#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
// MCSection
//===----------------------------------------------------------------------===//
-MCSection::~MCSection() {
+MCSymbol *MCSection::getEndSymbol(MCContext &Ctx) {
+ if (!End)
+ End = Ctx.createTempSymbol("sec_end", true);
+ return End;
}
-//===----------------------------------------------------------------------===//
-// MCSectionCOFF
-//===----------------------------------------------------------------------===//
+bool MCSection::hasEnded() const { return End && End->isInSection(); }
-MCSectionCOFF *MCSectionCOFF::
-Create(const StringRef &Name, bool IsDirective, SectionKind K, MCContext &Ctx) {
- return new (Ctx) MCSectionCOFF(Name, IsDirective, K);
+MCSection::~MCSection() {
}
-void MCSectionCOFF::PrintSwitchToSection(const MCAsmInfo &TAI,
- raw_ostream &OS) const {
-
- if (isDirective()) {
- OS << getName() << '\n';
- return;
- }
- OS << "\t.section\t" << getName() << ",\"";
- if (getKind().isText())
- OS << 'x';
- if (getKind().isWriteable())
- OS << 'w';
- OS << "\"\n";
-}