diff options
author | Ted Kremenek <kremenek@apple.com> | 2011-03-19 01:00:38 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2011-03-19 01:00:38 +0000 |
commit | 6ad6e95b451103feda0847965e5ab2ecfbd3fbd8 (patch) | |
tree | 03401b9fca2283617d94f55935aafaf58cb6ffee | |
parent | 4d96d9f0e758fb9244749f99d4b0a3ab1e3e0592 (diff) |
Recovery memory from TypeLocBuilders during crashes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127932 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/TypeLocBuilder.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Sema/TypeLocBuilder.h b/lib/Sema/TypeLocBuilder.h index 1e0a7c4546..7b241871b6 100644 --- a/lib/Sema/TypeLocBuilder.h +++ b/lib/Sema/TypeLocBuilder.h @@ -18,6 +18,7 @@ #include "clang/AST/TypeLoc.h" #include "llvm/ADT/SmallVector.h" #include "clang/AST/ASTContext.h" +#include "llvm/Support/CrashRecoveryContext.h" namespace clang { @@ -42,9 +43,13 @@ class TypeLocBuilder { /// The inline buffer. char InlineBuffer[InlineCapacity]; + llvm::CrashRecoveryContextCleanupRegistrar cleanupBuffer; + public: TypeLocBuilder() - : Buffer(InlineBuffer), Capacity(InlineCapacity), Index(InlineCapacity) + : Buffer(InlineBuffer), Capacity(InlineCapacity), Index(InlineCapacity), + cleanupBuffer(llvm::CrashRecoveryContextCleanup::create<TypeLocBuilder>( + this, llvm::CrashRecoveryContextCleanup::DestructorCleanup)) {} ~TypeLocBuilder() { |