diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp index 402eead8b6b388ca4b3868118eb9167bb05bd0fd..b3edc9b8e4a48618c1f29eac1f696ad93ee48704 100644 --- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp +++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp @@ -316,6 +316,8 @@ static GlobalVariable *SRAGlobal(GlobalVariable *GV) { CE->destroyConstant(); } + // Delete the old global, now that it is dead. + Globals.erase(GV); ++NumSRA; return NewGlobals[0]; }