clang  13.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/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CodeGenFunction.h"

Inheritance diagram for clang::CodeGen::CodeGenFunction::RunCleanupsScope:
Inheritance graph
[legend]
Collaboration diagram for clang::CodeGen::CodeGenFunction::RunCleanupsScope:
Collaboration 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 812 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 841 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 857 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 847 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: