clang 20.0.0git
|
A class controlling the emission of a finally block. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CodeGenFunction.h"
Public Member Functions | |
void | enter (CodeGenFunction &CGF, const Stmt *Finally, llvm::FunctionCallee beginCatchFn, llvm::FunctionCallee endCatchFn, llvm::FunctionCallee rethrowFn) |
Enters a finally block for an implementation using zero-cost exceptions. | |
void | exit (CodeGenFunction &CGF) |
A class controlling the emission of a finally block.
Definition at line 819 of file CodeGenFunction.h.
void CodeGenFunction::FinallyInfo::enter | ( | CodeGenFunction & | CGF, |
const Stmt * | body, | ||
llvm::FunctionCallee | beginCatchFn, | ||
llvm::FunctionCallee | endCatchFn, | ||
llvm::FunctionCallee | 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 1439 of file CGException.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::createBasicBlock(), clang::CodeGen::CGBuilderTy::CreateFlagStore(), clang::CodeGen::CodeGenFunction::CreateTempAlloca(), clang::CodeGen::CodeGenFunction::EHStack, 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 1492 of file CGException.cpp.
References clang::CodeGen::EHScopeStack::begin(), clang::CodeGen::EHCatchScope::Handler::Block, clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateAlignedStore(), clang::CodeGen::CGBuilderTy::CreateFlagStore(), 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::CodeGenTypeCache::getPointerAlign(), clang::CodeGen::CodeGenFunction::popCatchScope(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().
Referenced by clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt().