diff options
author | John McCall <rjmccall@apple.com> | 2010-07-28 01:07:35 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-07-28 01:07:35 +0000 |
commit | 413e67778d593215d2f2161a4e712c8568f1ddd0 (patch) | |
tree | b60f39de30d8e7421a919d01fd87d1f7173947c4 /lib/CodeGen/CodeGenFunction.cpp | |
parent | 7bce3a122296eba0e74f401c188e55c71935132f (diff) |
When creating a jump destination, its scope should be the scope of the
enclosing normal cleanup, not the top of the EH stack. I'm *really*
surprised this hasn't been causing more problems.
Fixes rdar://problem/8231514.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109569 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/CodeGen/CodeGenFunction.cpp b/lib/CodeGen/CodeGenFunction.cpp index d6e498f453..396ab4e6d2 100644 --- a/lib/CodeGen/CodeGenFunction.cpp +++ b/lib/CodeGen/CodeGenFunction.cpp @@ -1055,6 +1055,9 @@ void CodeGenFunction::PopCleanupBlock(bool FallthroughIsBranchThrough) { /// /// As a side-effect, this method clears the insertion point. void CodeGenFunction::EmitBranchThroughCleanup(JumpDest Dest) { + assert(Dest.getScopeDepth().encloses(EHStack.getInnermostNormalCleanup()) + && "stale jump destination"); + if (!HaveInsertPoint()) return; |