clang 22.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::CIRGen::EHScopeStack Class Reference

A stack of scopes which respond to exceptions, including cleanups and catch blocks. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/EHScopeStack.h"

Classes

class  Cleanup
 Information for lazily generating a cleanup. More...
 
class  iterator
 A non-stable pointer into the scope stack. More...
 
class  stable_iterator
 A saved depth on the scope stack. More...
 

Public Types

enum  { ScopeStackAlignment = 8 }
 

Public Member Functions

 EHScopeStack ()=default
 
 ~EHScopeStack ()=default
 
template<class T , class... As>
void pushCleanup (CleanupKind kind, As... a)
 Push a lazily-created cleanup on the stack.
 
void setCGF (CIRGenFunction *inCGF)
 
void popCleanup ()
 Pops a cleanup scope off the stack. This is private to CIRGenCleanup.cpp.
 
bool empty () const
 Determines whether the exception-scopes stack is empty.
 
iterator begin () const
 Returns an iterator pointing to the innermost EH scope.
 
stable_iterator stable_begin () const
 Create a stable reference to the top of the EH stack.
 

Static Public Member Functions

static stable_iterator stable_end ()
 Create a stable reference to the bottom of the EH stack.
 

Friends

class CIRGenFunction
 

Detailed Description

A stack of scopes which respond to exceptions, including cleanups and catch blocks.

Definition at line 44 of file EHScopeStack.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
ScopeStackAlignment 

Definition at line 49 of file EHScopeStack.h.

Constructor & Destructor Documentation

◆ EHScopeStack()

clang::CIRGen::EHScopeStack::EHScopeStack ( )
default

◆ ~EHScopeStack()

clang::CIRGen::EHScopeStack::~EHScopeStack ( )
default

Member Function Documentation

◆ begin()

EHScopeStack::iterator clang::CIRGen::EHScopeStack::begin ( ) const
inline

Returns an iterator pointing to the innermost EH scope.

Definition at line 137 of file CIRGenCleanup.h.

Referenced by popCleanup().

◆ empty()

bool clang::CIRGen::EHScopeStack::empty ( ) const
inline

Determines whether the exception-scopes stack is empty.

Definition at line 162 of file EHScopeStack.h.

Referenced by popCleanup().

◆ popCleanup()

void EHScopeStack::popCleanup ( )

Pops a cleanup scope off the stack. This is private to CIRGenCleanup.cpp.

Definition at line 92 of file CIRGenCleanup.cpp.

References begin(), cir::MissingFeatures::ehCleanupBranchFixups(), and empty().

◆ pushCleanup()

template<class T , class... As>
void clang::CIRGen::EHScopeStack::pushCleanup ( CleanupKind  kind,
As...  a 
)
inline

Push a lazily-created cleanup on the stack.

Definition at line 149 of file EHScopeStack.h.

References ScopeStackAlignment, and clang::T.

◆ setCGF()

void clang::CIRGen::EHScopeStack::setCGF ( CIRGenFunction inCGF)
inline

Definition at line 156 of file EHScopeStack.h.

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

◆ stable_begin()

stable_iterator clang::CIRGen::EHScopeStack::stable_begin ( ) const
inline

Create a stable reference to the top of the EH stack.

The returned reference is valid until that scope is popped off the stack.

Definition at line 174 of file EHScopeStack.h.

Referenced by clang::CIRGen::CIRGenFunction::emitReturnStmt(), clang::CIRGen::CIRGenFunction::finishFunction(), clang::CIRGen::CIRGenFunction::RunCleanupsScope::RunCleanupsScope(), and clang::CIRGen::CIRGenFunction::startFunction().

◆ stable_end()

static stable_iterator clang::CIRGen::EHScopeStack::stable_end ( )
inlinestatic

Create a stable reference to the bottom of the EH stack.

Definition at line 179 of file EHScopeStack.h.

Friends And Related Function Documentation

◆ CIRGenFunction

friend class CIRGenFunction
friend

Definition at line 45 of file EHScopeStack.h.


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