Reformat.
[oota-llvm.git] / lib / MC / MCSection.cpp
index 2d5eb33b4d735da5c018d99fa62c2690587897dd..7204e6cba1f48f12471e100180cf3e244a880d79 100644 (file)
@@ -8,40 +8,24 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/MC/MCSection.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::MCSection(const StringRef &N, bool isDirective, SectionKind K, 
-                     MCContext &Ctx)
-  : Name(N), IsDirective(isDirective), Kind(K) {
-  MCSection *&Entry = Ctx.Sections[Name];
-  assert(Entry == 0 && "Multiple sections with the same name created");
-  Entry = this;
-}
-
-MCSection *MCSection::
-Create(const StringRef &Name, bool IsDirective, SectionKind K, MCContext &Ctx) {
-  return new (Ctx) MCSection(Name, IsDirective, K, Ctx);
-}
-
-
-MCSectionELF *MCSectionELF::
-Create(const StringRef &Name, bool IsDirective, SectionKind K, MCContext &Ctx) {
-  return new (Ctx) MCSectionELF(Name, IsDirective, K, Ctx);
-}
-
+//===----------------------------------------------------------------------===//
+// MCSection
+//===----------------------------------------------------------------------===//
 
-MCSectionMachO *MCSectionMachO::
-Create(const StringRef &Name, bool IsDirective, SectionKind K, MCContext &Ctx) {
-  return new (Ctx) MCSectionMachO(Name, IsDirective, K, Ctx);
+MCSymbol *MCSection::getEndSymbol(MCContext &Ctx) {
+  if (!End)
+    End = Ctx.createTempSymbol("sec_end", true);
+  return End;
 }
 
+bool MCSection::hasEnded() const { return End && End->isInSection(); }
 
-MCSectionPECOFF *MCSectionPECOFF::
-Create(const StringRef &Name, bool IsDirective, SectionKind K, MCContext &Ctx) {
-  return new (Ctx) MCSectionPECOFF(Name, IsDirective, K, Ctx);
+MCSection::~MCSection() {
 }