aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/AST/TranslationUnit.h2
-rw-r--r--lib/AST/TranslationUnit.cpp5
2 files changed, 7 insertions, 0 deletions
diff --git a/include/clang/AST/TranslationUnit.h b/include/clang/AST/TranslationUnit.h
index 2839774eae..0c7d0348da 100644
--- a/include/clang/AST/TranslationUnit.h
+++ b/include/clang/AST/TranslationUnit.h
@@ -42,6 +42,8 @@ public:
explicit TranslationUnit(const LangOptions& lopt)
: LangOpts(lopt), Context(NULL) {}
+ ~TranslationUnit();
+
void setContext(ASTContext* context) { Context = context; }
ASTContext* getContext() const { return Context; }
diff --git a/lib/AST/TranslationUnit.cpp b/lib/AST/TranslationUnit.cpp
index fdc37a8443..8211db1b74 100644
--- a/lib/AST/TranslationUnit.cpp
+++ b/lib/AST/TranslationUnit.cpp
@@ -30,6 +30,11 @@ enum { BasicMetadataBlock = 1,
ASTContextBlock = 2,
DeclsBlock = 3 };
+TranslationUnit::~TranslationUnit()
+{
+ for (iterator I=begin(), E=end(); I!=E; ++I)
+ delete *I;
+}
bool clang::EmitASTBitcodeFile(const TranslationUnit& TU,
const llvm::sys::Path& Filename) {