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 | a872326929a03fec00d77da6043107d1cee31a52 (patch) | |
| tree | 7e4c98d6d55c14ab75fd6c9bc31acf708f109b01 | |
| parent | f75d089679018847fc6e05a95abbeae614d4f225 (diff) | |
| download | bcm5719-llvm-a872326929a03fec00d77da6043107d1cee31a52.tar.gz bcm5719-llvm-a872326929a03fec00d77da6043107d1cee31a52.zip | |
Recovery memory from TypeLocBuilders during crashes.
llvm-svn: 127932
| -rw-r--r-- | clang/lib/Sema/TypeLocBuilder.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Sema/TypeLocBuilder.h b/clang/lib/Sema/TypeLocBuilder.h index 1e0a7c45467..7b241871b67 100644 --- a/clang/lib/Sema/TypeLocBuilder.h +++ b/clang/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() { |

