add some comments: MCContext owns the MCSections, but it bump pointer allocates
them, so it doesn't have to explicitly free them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78870 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h
index f0f5e15..adf3804 100644
--- a/include/llvm/MC/MCContext.h
+++ b/include/llvm/MC/MCContext.h
@@ -20,7 +20,9 @@
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 @@
/// 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 e6fb5c8..6333835 100644
--- a/lib/MC/MCContext.cpp
+++ b/lib/MC/MCContext.cpp
@@ -18,6 +18,8 @@
}
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 094e837..e7680c8 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -708,8 +708,6 @@
" section specifier");
}
-
-
return S;
}