aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2008-12-13 22:52:24 +0000
committerAnders Carlsson <andersca@mac.com>2008-12-13 22:52:24 +0000
commite21269bcb732afa70386fdd4c95d22bc2ed943b1 (patch)
treea7a7607d96805c3a9ce4c7c701707c24796ac855 /lib/CodeGen/CodeGenFunction.h
parentaaa63a761c6671a08e3f4f463435b72739fa194b (diff)
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
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r--lib/CodeGen/CodeGenFunction.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index 5c4246f7c3..2959c08a44 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -148,13 +148,14 @@ private:
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;