Store the size of the EH stack inside each BreakContinue struct so we know when a break/continue won't cross a try block.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60998 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index 5c4246f..2959c08 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -148,13 +148,14 @@
llvm::DenseMap<const LabelStmt*, llvm::BasicBlock*> LabelMap;
// BreakContinueStack - This keeps track of where break and continue
- // statements should jump to.
+ // statements should jump to, as well as the size of the eh stack.
struct BreakContinue {
- BreakContinue(llvm::BasicBlock *bb, llvm::BasicBlock *cb)
- : BreakBlock(bb), ContinueBlock(cb) {}
+ BreakContinue(llvm::BasicBlock *bb, llvm::BasicBlock *cb, size_t ehss)
+ : BreakBlock(bb), ContinueBlock(cb), EHStackSize(ehss) {}
llvm::BasicBlock *BreakBlock;
llvm::BasicBlock *ContinueBlock;
+ size_t EHStackSize;
};
llvm::SmallVector<BreakContinue, 8> BreakContinueStack;