diff options
-rw-r--r-- | lib/VMCore/SymbolTable.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/VMCore/SymbolTable.cpp b/lib/VMCore/SymbolTable.cpp index f84e945e7d..7a6854c240 100644 --- a/lib/VMCore/SymbolTable.cpp +++ b/lib/VMCore/SymbolTable.cpp @@ -8,6 +8,7 @@ #include "llvm/InstrTypes.h" #include "llvm/Support/StringExtras.h" #include "llvm/DerivedTypes.h" +#include "llvm/Module.h" #include "llvm/Method.h" #define DEBUG_SYMBOL_TABLE 0 @@ -229,6 +230,11 @@ void SymbolTable::refineAbstractType(const DerivedType *OldType, // Remove newM from the symtab NewM->setName(""); InternallyInconsistent = false; + + // Now we can remove this method from the module entirely... + NewM->getParent()->getMethodList().remove(NewM); + delete NewM; + } else { assert(0 && "Two ploanes folded together with overlapping " "value names!"); |