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)
llvm-svn: 171475

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

index 1869fe3..0ea9ae0 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 e36e181..6d5c0a5 100644 (file)
@@ -47,6 +47,7 @@ MCObjectStreamer::~MCObjectStreamer() {
 void MCObjectStreamer::reset() {
   if (Assembler)
     Assembler->reset();
+  CurSectionData = 0;
   MCStreamer::reset();
 }
 
index 6f0ada2..7dffc3e 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));