1 //===- lib/MC/MCSection.cpp - Machine Code Section Representation ---------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "llvm/MC/MCSection.h" 11 #include "llvm/MC/MCContext.h" 12 using namespace llvm; 13 14 MCSection::~MCSection() { 15 } 16 17 MCSection::MCSection(const StringRef &N, bool isDirective, SectionKind K, 18 MCContext &Ctx) 19 : Name(N), IsDirective(isDirective), Kind(K) { 20 MCSection *&Entry = Ctx.Sections[Name]; 21 assert(Entry == 0 && "Multiple sections with the same name created"); 22 Entry = this; 23 } 24 25 MCSection *MCSection::Create(const StringRef &Name, bool IsDirective, 26 SectionKind K, MCContext &Ctx) { 27 return new (Ctx) MCSection(Name, IsDirective, K, Ctx); 28 } 29 30