diff options
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 4ff3badd99..068627139d 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -156,6 +156,12 @@ private: /// condition has possibly started a vla. void BreakContinuePush(llvm::BasicBlock *bb, llvm::BasicBlock *cb) { BreakContinueStack.push_back(BreakContinue(bb, cb, StackDepth, + StackDepth, + ObjCEHStack.size())); + } + void BreakContinuePush(llvm::BasicBlock *bb, llvm::BasicBlock *cb, + llvm::Value *bsd, llvm::Value *csd) { + BreakContinueStack.push_back(BreakContinue(bb, cb, bsd, csd, ObjCEHStack.size())); } @@ -169,13 +175,14 @@ private: // of the eh stack. struct BreakContinue { BreakContinue(llvm::BasicBlock *bb, llvm::BasicBlock *cb, - llvm::Value *sd, size_t ehss) - : BreakBlock(bb), ContinueBlock(cb), SaveStackDepth(sd), - EHStackSize(ehss) {} + llvm::Value *bsd, llvm::Value *csd, size_t ehss) + : BreakBlock(bb), ContinueBlock(cb), SaveBreakStackDepth(bsd), + SaveContinueStackDepth(csd), EHStackSize(ehss) {} llvm::BasicBlock *BreakBlock; llvm::BasicBlock *ContinueBlock; - llvm::Value *SaveStackDepth; + llvm::Value *SaveBreakStackDepth; + llvm::Value *SaveContinueStackDepth; size_t EHStackSize; }; llvm::SmallVector<BreakContinue, 8> BreakContinueStack; |