From 8e355f296a3ba45b94de49dbb18ae6a6e67df04c Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Wed, 21 May 2008 15:53:55 +0000 Subject: [PATCH] When destroying DeclStmts, also destroy the associated Decl (reclaim its memory). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51379 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/Stmt.h | 2 ++ lib/AST/Stmt.cpp | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/include/clang/AST/Stmt.h b/include/clang/AST/Stmt.h index 8b29617fa0..c854bb5640 100644 --- a/include/clang/AST/Stmt.h +++ b/include/clang/AST/Stmt.h @@ -146,6 +146,8 @@ public: DeclStmt(ScopedDecl *D, SourceLocation startLoc, SourceLocation endLoc) : Stmt(DeclStmtClass), TheDecl(D), StartLoc(startLoc), EndLoc(endLoc) {} + virtual void Destroy(ASTContext& Ctx); + const ScopedDecl *getDecl() const { return TheDecl; } ScopedDecl *getDecl() { return TheDecl; } diff --git a/lib/AST/Stmt.cpp b/lib/AST/Stmt.cpp index 6ed9966135..b12518fa78 100644 --- a/lib/AST/Stmt.cpp +++ b/lib/AST/Stmt.cpp @@ -55,6 +55,11 @@ void Stmt::Destroy(ASTContext& C) { delete this; } +void DeclStmt::Destroy(ASTContext& C) { + TheDecl->Destroy(C); + Stmt::Destroy(C); +} + void Stmt::PrintStats() { // Ensure the table is primed. getStmtInfoTableEntry(Stmt::NullStmtClass); -- 2.50.1