clang  3.9.0
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
clang::CodeGen::EHScope Class Reference

A protected scope for zero-cost EH handling. More...

#include <CGCleanup.h>

Inheritance diagram for clang::CodeGen::EHScope:
[legend]
Collaboration diagram for clang::CodeGen::EHScope:
[legend]

Classes

class  CatchBitFields
 
class  CleanupBitFields
 
class  FilterBitFields
 

Public Types

enum  Kind {
  Cleanup, Catch, Terminate, Filter,
  PadEnd
}
 

Public Member Functions

 EHScope (Kind kind, EHScopeStack::stable_iterator enclosingEHScope)
 
Kind getKind () const
 
llvm::BasicBlock * getCachedLandingPad () const
 
void setCachedLandingPad (llvm::BasicBlock *block)
 
llvm::BasicBlock * getCachedEHDispatchBlock () const
 
void setCachedEHDispatchBlock (llvm::BasicBlock *block)
 
bool hasEHBranches () const
 
EHScopeStack::stable_iterator getEnclosingEHScope () const
 

Protected Attributes

union {
   CommonBitFields   CommonBits
 
   CatchBitFields   CatchBits
 
   CleanupBitFields   CleanupBits
 
   FilterBitFields   FilterBits
 
}; 
 

Detailed Description

A protected scope for zero-cost EH handling.

Definition at line 44 of file CGCleanup.h.

Member Enumeration Documentation

Enumerator
Cleanup 
Catch 
Terminate 
Filter 
PadEnd 

Definition at line 106 of file CGCleanup.h.

Constructor & Destructor Documentation

clang::CodeGen::EHScope::EHScope ( Kind  kind,
EHScopeStack::stable_iterator  enclosingEHScope 
)
inline

Definition at line 108 of file CGCleanup.h.

References CommonBits.

Member Function Documentation

llvm::BasicBlock* clang::CodeGen::EHScope::getCachedEHDispatchBlock ( ) const
inline
llvm::BasicBlock* clang::CodeGen::EHScope::getCachedLandingPad ( ) const
inline

Definition at line 116 of file CGCleanup.h.

Referenced by clang::CodeGen::CodeGenFunction::getInvokeDestImpl().

EHScopeStack::stable_iterator clang::CodeGen::EHScope::getEnclosingEHScope ( ) const
inline
Kind clang::CodeGen::EHScope::getKind ( ) const
inline
bool clang::CodeGen::EHScope::hasEHBranches ( ) const
inline
void clang::CodeGen::EHScope::setCachedEHDispatchBlock ( llvm::BasicBlock *  block)
inline
void clang::CodeGen::EHScope::setCachedLandingPad ( llvm::BasicBlock *  block)
inline

Definition at line 120 of file CGCleanup.h.

Member Data Documentation

union { ... }
CatchBitFields clang::CodeGen::EHScope::CatchBits
CleanupBitFields clang::CodeGen::EHScope::CleanupBits

Definition at line 101 of file CGCleanup.h.

CommonBitFields clang::CodeGen::EHScope::CommonBits

Definition at line 99 of file CGCleanup.h.

Referenced by EHScope(), and getKind().

FilterBitFields clang::CodeGen::EHScope::FilterBits

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