summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGException.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-13 21:20:51 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-13 21:20:51 +0000
commit612942d65f29278b4911c200f5c79db915dec73a (patch)
tree8e109fe339836b52dd12f2d786e860cc02166ea8 /clang/lib/CodeGen/CGException.cpp
parentd1191ee43cd35bea5154480e10d3829d9fa2e762 (diff)
downloadbcm5719-llvm-612942d65f29278b4911c200f5c79db915dec73a.tar.gz
bcm5719-llvm-612942d65f29278b4911c200f5c79db915dec73a.zip
Sketch out a framework for delaying the activation of a cleanup.
Not yet complete or used. llvm-svn: 111044
Diffstat (limited to 'clang/lib/CodeGen/CGException.cpp')
-rw-r--r--clang/lib/CodeGen/CGException.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGException.cpp b/clang/lib/CodeGen/CGException.cpp
index dd518cf5efd..d4a702a255f 100644
--- a/clang/lib/CodeGen/CGException.cpp
+++ b/clang/lib/CodeGen/CGException.cpp
@@ -73,11 +73,13 @@ EHScopeStack::getEnclosingEHCleanup(iterator it) const {
void *EHScopeStack::pushCleanup(CleanupKind Kind, size_t Size) {
assert(((Size % sizeof(void*)) == 0) && "cleanup type is misaligned");
char *Buffer = allocate(EHCleanupScope::getSizeForCleanupSize(Size));
- bool IsNormalCleanup = Kind != EHCleanup;
- bool IsEHCleanup = Kind != NormalCleanup;
+ bool IsNormalCleanup = Kind & NormalCleanup;
+ bool IsEHCleanup = Kind & EHCleanup;
+ bool IsActive = !(Kind & InactiveCleanup);
EHCleanupScope *Scope =
new (Buffer) EHCleanupScope(IsNormalCleanup,
IsEHCleanup,
+ IsActive,
Size,
BranchFixups.size(),
InnermostNormalCleanup,
OpenPOWER on IntegriCloud