small fixes to enable the reuse of the pass manager across multiple modules
authorPedro Artigas <partigas@apple.com>
Fri, 4 Jan 2013 18:04:42 +0000 (18:04 +0000)
committerPedro Artigas <partigas@apple.com>
Fri, 4 Jan 2013 18:04:42 +0000 (18:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171475 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineModuleInfo.cpp
lib/MC/MCObjectStreamer.cpp
lib/MC/MCStreamer.cpp

index 1869fe3d936c05d2814ff2d0454f332ef6854d39..0ea9ae0fcc890d26aacf07700b4b2688c30e7ec3 100644 (file)
@@ -266,7 +266,6 @@ MachineModuleInfo::MachineModuleInfo()
 }
 
 MachineModuleInfo::~MachineModuleInfo() {
-  delete ObjFileMMI;
 }
 
 bool MachineModuleInfo::doInitialization(Module &M) {
@@ -294,6 +293,9 @@ bool MachineModuleInfo::doFinalization(Module &M) {
 
   Context.reset();
 
+  delete ObjFileMMI;
+  ObjFileMMI = 0;
+
   return false;
 }
 
index e36e181ff5678f6e0ce31cbc67fa94a575ed1965..6d5c0a54f37789bbfe078e2b18f0d899b3bd9e70 100644 (file)
@@ -47,6 +47,7 @@ MCObjectStreamer::~MCObjectStreamer() {
 void MCObjectStreamer::reset() {
   if (Assembler)
     Assembler->reset();
+  CurSectionData = 0;
   MCStreamer::reset();
 }
 
index 6f0ada277c1b68ff05eb45101dd73a4001743697..7dffc3e21b4208bb84e1f9aab0181ba155c319ec 100644 (file)
@@ -41,7 +41,6 @@ void MCStreamer::reset() {
   EmitDebugFrame = false;
   CurrentW64UnwindInfo = 0;
   LastSymbol = 0;
-  AutoInitSections = false;
   const MCSection *section = NULL;
   SectionStack.clear();
   SectionStack.push_back(std::make_pair(section, section));