clang  19.0.0git
Public Member Functions | Protected Attributes | List of all members
clang::CodeGen::CodeGenFunction::RunCleanupsScope Class Reference

Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited. More...

#include "/home/runner/work/llvm/llvm/repo/clang/lib/CodeGen/CodeGenFunction.h"

Inheritance diagram for clang::CodeGen::CodeGenFunction::RunCleanupsScope:
Inheritance graph
[legend]

Public Member Functions

 RunCleanupsScope (CodeGenFunction &CGF)
 Enter a new cleanup scope. More...
 
 ~RunCleanupsScope ()
 Exit this cleanup scope, emitting any accumulated cleanups. More...
 
bool requiresCleanups () const
 Determine whether this scope requires any cleanups. More...
 
void ForceCleanup (std::initializer_list< llvm::Value ** > ValuesToReload={})
 Force the emission of cleanups now, instead of waiting until this object is destroyed. More...
 

Protected Attributes

bool PerformCleanup
 
CodeGenFunctionCGF
 

Detailed Description

Enters a new scope for capturing cleanups, all of which will be executed once the scope is exited.

Definition at line 969 of file CodeGenFunction.h.

Constructor & Destructor Documentation

◆ RunCleanupsScope()

clang::CodeGen::CodeGenFunction::RunCleanupsScope::RunCleanupsScope ( CodeGenFunction CGF)
inlineexplicit

◆ ~RunCleanupsScope()

clang::CodeGen::CodeGenFunction::RunCleanupsScope::~RunCleanupsScope ( )
inline

Exit this cleanup scope, emitting any accumulated cleanups.

Definition at line 998 of file CodeGenFunction.h.

References ForceCleanup(), and PerformCleanup.

Member Function Documentation

◆ ForceCleanup()

void clang::CodeGen::CodeGenFunction::RunCleanupsScope::ForceCleanup ( std::initializer_list< llvm::Value ** >  ValuesToReload = {})
inline

Force the emission of cleanups now, instead of waiting until this object is destroyed.

Parameters
ValuesToReload- A list of values that need to be available at the insertion point after cleanup emission. If cleanup emission created a shared cleanup block, these value pointers will be rewritten. Otherwise, they not will be modified.

Definition at line 1014 of file CodeGenFunction.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitConstructorBody(), clang::CodeGen::CodeGenFunction::EmitDestructorBody(), clang::CodeGen::CodeGenFunction::LexicalScope::ForceCleanup(), clang::CodeGen::CodeGenFunction::OMPPrivateScope::ForceCleanup(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), and ~RunCleanupsScope().

◆ requiresCleanups()

bool clang::CodeGen::CodeGenFunction::RunCleanupsScope::requiresCleanups ( ) const
inline

Determine whether this scope requires any cleanups.

Definition at line 1004 of file CodeGenFunction.h.

References CGF, clang::CodeGen::CodeGenFunction::EHStack, and clang::CodeGen::EHScopeStack::stable_begin().

Referenced by emitCXXDestructMethod().

Member Data Documentation

◆ CGF

CodeGenFunction& clang::CodeGen::CodeGenFunction::RunCleanupsScope::CGF
protected

◆ PerformCleanup

bool clang::CodeGen::CodeGenFunction::RunCleanupsScope::PerformCleanup
protected

The documentation for this class was generated from the following file: