diff options
author | Anders Carlsson <andersca@mac.com> | 2009-02-08 00:50:42 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-02-08 00:50:42 +0000 |
commit | 87eaf17cc88516277e4389dfa15df93ecfdce559 (patch) | |
tree | b69fafea26baf8cee141969efeb72e722d0bae43 /lib/CodeGen/CodeGenFunction.h | |
parent | e2dedf8f61b8f306f704781456b482eb61871e8e (diff) |
More cleanup stack work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64059 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index 3dbc2c99e7..b37cf7b919 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -155,6 +155,13 @@ public: /// blocks that have been added. void EmitCleanupBlocks(size_t OldCleanupStackSize); + /// EmitBranchThroughCleanup - Emit a branch from the current insert block + /// through the cleanup handling code (if any) and then on to \arg Dest. + /// + /// FIXME: Maybe this should really be in EmitBranch? Don't we always want + /// this behavior for branches? + void EmitBranchThroughCleanup(llvm::BasicBlock *Dest); + private: /// LabelIDs - Track arbitrary ids assigned to labels for use in /// implementing the GCC address-of-label extension and indirect @@ -780,6 +787,10 @@ private: /// EmitCleanupBlock - emits a single cleanup block. void EmitCleanupBlock(); + /// AddBranchFixup - adds a branch instruction to the list of fixups for the + /// current cleanup scope. + void AddBranchFixup(llvm::BranchInst *BI); + }; } // end namespace CodeGen } // end namespace clang |