clang 23.0.0git
CIRGenCleanup.cpp File Reference

Go to the source code of this file.

Functions

static void setupCleanupBlockDeactivation (CIRGenFunction &cgf, EHScopeStack::stable_iterator c, mlir::Operation *dominatingIP)
 The given cleanup block is being deactivated.
static void emitCleanup (CIRGenFunction &cgf, cir::CleanupScopeOp cleanupScope, EHScopeStack::Cleanup *cleanup, EHScopeStack::Cleanup::Flags flags, Address activeFlag)
static bool bodyHasBranchThroughExits (mlir::Region &bodyRegion)
 Check whether a cleanup scope body contains any non-yield exits that branch through the cleanup.

Function Documentation

◆ bodyHasBranchThroughExits()

bool bodyHasBranchThroughExits ( mlir::Region & bodyRegion)
static

Check whether a cleanup scope body contains any non-yield exits that branch through the cleanup.

These exits branch through the cleanup and require the normal cleanup to be executed even when the cleanup has been deactivated.

Definition at line 466 of file CIRGenCleanup.cpp.

References clang::isa().

Referenced by clang::CIRGen::CIRGenFunction::popCleanupBlock().

◆ emitCleanup()

◆ setupCleanupBlockDeactivation()