In ~Preprocessor(), also cleanup the MacroInfo objects left-over from stray "#pragma push_macro" uses.  This
fixes a potential memory leak.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116826 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp
index 5160acf..56ed765 100644
--- a/lib/Lex/Preprocessor.cpp
+++ b/lib/Lex/Preprocessor.cpp
@@ -123,6 +123,13 @@
     // memory alocated by MacroInfo.
     (*I)->Destroy();
   }
+  for (llvm::DenseMap<IdentifierInfo*, std::vector<MacroInfo*> >::iterator I =
+         PragmaPushMacroInfo.begin(), E = PragmaPushMacroInfo.end(); I!=E; ++I){
+    for (std::vector<MacroInfo*>::iterator I2 = I->second.begin(), E2 = I->second.end();
+         I2 != E2; ++I2) {
+      (*I2)->Destroy();
+    }
+  }
 
   // Free any cached macro expanders.
   for (unsigned i = 0, e = NumCachedTokenLexers; i != e; ++i)