clang API Documentation
A class controlling the emission of a finally block. More...
#include <CodeGenFunction.h>
Public Member Functions | |
void | enter (CodeGenFunction &CGF, const Stmt *Finally, llvm::Constant *beginCatchFn, llvm::Constant *endCatchFn, llvm::Constant *rethrowFn) |
void | exit (CodeGenFunction &CGF) |
A class controlling the emission of a finally block.
Definition at line 335 of file CodeGenFunction.h.
void CodeGenFunction::FinallyInfo::enter | ( | CodeGenFunction & | CGF, |
const Stmt * | body, | ||
llvm::Constant * | beginCatchFn, | ||
llvm::Constant * | endCatchFn, | ||
llvm::Constant * | rethrowFn | ||
) |
Enters a finally block for an implementation using zero-cost exceptions. This is mostly general, but hard-codes some language/ABI-specific behavior in the catch-all sections.
Definition at line 1396 of file CGException.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::createBasicBlock(), clang::CodeGen::CodeGenFunction::CreateTempAlloca(), clang::CodeGen::CodeGenFunction::EHStack, getElementType(), clang::CodeGen::CodeGenFunction::getJumpDestInCurrentScope(), clang::CodeGen::CodeGenFunction::getUnreachableBlock(), clang::CodeGen::CodeGenTypeCache::Int8PtrTy, clang::CodeGen::NormalCleanup, clang::CodeGen::EHScopeStack::pushCatch(), and clang::CodeGen::EHCatchScope::setCatchAllHandler().
Referenced by clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt().
void CodeGenFunction::FinallyInfo::exit | ( | CodeGenFunction & | CGF | ) |
Definition at line 1452 of file CGException.cpp.
References clang::CodeGen::EHScopeStack::begin(), clang::CodeGen::EHCatchScope::Handler::Block, clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::EHStack, clang::CodeGen::CodeGenFunction::EmitBlock(), clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::EmitNounwindRuntimeCall(), clang::CodeGen::CodeGenFunction::getExceptionFromSlot(), clang::CodeGen::EHCatchScope::getHandler(), clang::CodeGen::CodeGenFunction::popCatchScope(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().
Referenced by clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt().