summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-10-06 18:56:43 +0000
committerJohn McCall <rjmccall@apple.com>2010-10-06 18:56:43 +0000
commit569eafce635c7ca2285517d2a6b92ec8df23ac94 (patch)
tree58bc32b57080e2bf00dcab4715dae983246e9ec3 /clang/lib
parentb4fb2a991c9997417fd6948f5fa613ac581a8ae5 (diff)
downloadbcm5719-llvm-569eafce635c7ca2285517d2a6b92ec8df23ac94.tar.gz
bcm5719-llvm-569eafce635c7ca2285517d2a6b92ec8df23ac94.zip
Re-enable EH cleanups to destroy __block variables, now that we have a moment to
deal with the consequences. Fixes rdar://problem/8224178. llvm-svn: 115816
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/CGDecl.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp
index b743c0c6b4a..e1be2d29be4 100644
--- a/clang/lib/CodeGen/CGDecl.cpp
+++ b/clang/lib/CodeGen/CGDecl.cpp
@@ -806,9 +806,8 @@ void CodeGenFunction::EmitLocalBlockVarDecl(const VarDecl &D,
}
// If this is a block variable, clean it up.
- // FIXME: this should be an EH cleanup as well. rdar://problem/8224178
if (needsDispose && CGM.getLangOptions().getGCMode() != LangOptions::GCOnly)
- EHStack.pushCleanup<CallBlockRelease>(NormalCleanup, DeclPtr);
+ EHStack.pushCleanup<CallBlockRelease>(NormalAndEHCleanup, DeclPtr);
}
/// Emit an alloca (or GlobalValue depending on target)
OpenPOWER on IntegriCloud