]> granicus.if.org Git - clang/commitdiff
Fix a memory leak of PragmaNamespaces, rdar://10611796.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 6 Jan 2012 00:22:09 +0000 (00:22 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 6 Jan 2012 00:22:09 +0000 (00:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147635 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Lex/Pragma.cpp

index cc612fff9ff9b2a93d2c7446a81b1a755bd15543..1ccfe8c2c9bccf325586ce2e1a4558ddc5c08f2b 100644 (file)
@@ -714,8 +714,10 @@ void Preprocessor::RemovePragmaHandler(StringRef Namespace,
 
   // If this is a non-default namespace and it is now empty, remove
   // it.
-  if (NS != PragmaHandlers && NS->IsEmpty())
+  if (NS != PragmaHandlers && NS->IsEmpty()) {
     PragmaHandlers->RemovePragmaHandler(NS);
+    delete NS;
+  }
 }
 
 bool Preprocessor::LexOnOffSwitch(tok::OnOffSwitch &Result) {