diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index f0f5e155553..adf380472a1 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -20,7 +20,9 @@ namespace llvm { class MCSymbol; class StringRef; - /// MCContext - Context object for machine code objects. + /// MCContext - Context object for machine code objects. This class owns all + /// of the sections that it creates. + /// class MCContext { MCContext(const MCContext&); // DO NOT IMPLEMENT MCContext &operator=(const MCContext&); // DO NOT IMPLEMENT @@ -49,7 +51,6 @@ namespace llvm { /// null if it doesn't exist. MCSection *GetSection(const StringRef &Name) const; - void SetSection(const StringRef &Name, MCSection *S) { MCSection *&Entry = Sections[Name]; assert(Entry == 0 && "Multiple sections with the same name created"); diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index e6fb5c8809b..63338353a1f 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -18,6 +18,8 @@ MCContext::MCContext() { } MCContext::~MCContext() { + // NOTE: The sections are all allocated out of a bump pointer allocator, + // we don't need to free them here. } MCSection *MCContext::GetSection(const StringRef &Name) const { diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 094e837f6f9..e7680c8a877 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -708,8 +708,6 @@ getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, " section specifier"); } - - return S; }