clang  3.9.0
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
clang::CodeGen::EHPersonality Struct Reference

The exceptions personality for a function. More...

#include <CGCleanup.h>

Collaboration diagram for clang::CodeGen::EHPersonality:
[legend]

Public Member Functions

bool usesFuncletPads () const
 Does this personality use landingpads or the family of pad instructions designed to form funclets? More...
 
bool isMSVCPersonality () const
 
bool isMSVCXXPersonality () const
 

Static Public Member Functions

static const EHPersonalityget (CodeGenModule &CGM, const FunctionDecl *FD)
 
static const EHPersonalityget (CodeGenFunction &CGF)
 

Public Attributes

const char * PersonalityFn
 
const char * CatchallRethrowFn
 

Static Public Attributes

static const EHPersonality GNU_C = { "__gcc_personality_v0", nullptr }
 
static const EHPersonality GNU_C_SJLJ = { "__gcc_personality_sj0", nullptr }
 
static const EHPersonality GNU_C_SEH = { "__gcc_personality_seh0", nullptr }
 
static const EHPersonality GNU_ObjC = {"__gnu_objc_personality_v0", "objc_exception_throw"}
 
static const EHPersonality GNUstep_ObjC = { "__gnustep_objc_personality_v0", nullptr }
 
static const EHPersonality GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", nullptr }
 
static const EHPersonality NeXT_ObjC = { "__objc_personality_v0", nullptr }
 
static const EHPersonality GNU_CPlusPlus = { "__gxx_personality_v0", nullptr }
 
static const EHPersonality GNU_CPlusPlus_SJLJ = { "__gxx_personality_sj0", nullptr }
 
static const EHPersonality GNU_CPlusPlus_SEH = { "__gxx_personality_seh0", nullptr }
 
static const EHPersonality MSVC_except_handler = { "_except_handler3", nullptr }
 
static const EHPersonality MSVC_C_specific_handler = { "__C_specific_handler", nullptr }
 
static const EHPersonality MSVC_CxxFrameHandler3 = { "__CxxFrameHandler3", nullptr }
 

Detailed Description

The exceptions personality for a function.

Definition at line 605 of file CGCleanup.h.

Member Function Documentation

const EHPersonality & EHPersonality::get ( CodeGenModule CGM,
const FunctionDecl FD 
)
static
const EHPersonality & EHPersonality::get ( CodeGenFunction CGF)
static
bool clang::CodeGen::EHPersonality::isMSVCPersonality ( ) const
inline

Definition at line 634 of file CGCleanup.h.

References MSVC_C_specific_handler, MSVC_CxxFrameHandler3, and MSVC_except_handler.

Referenced by usesFuncletPads().

bool clang::CodeGen::EHPersonality::isMSVCXXPersonality ( ) const
inline

Definition at line 639 of file CGCleanup.h.

References MSVC_CxxFrameHandler3.

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

bool clang::CodeGen::EHPersonality::usesFuncletPads ( ) const
inline

Does this personality use landingpads or the family of pad instructions designed to form funclets?

Definition at line 632 of file CGCleanup.h.

References isMSVCPersonality().

Referenced by clang::CodeGen::CodeGenFunction::getEHDispatchBlock(), clang::CodeGen::CodeGenFunction::getInvokeDestImpl(), clang::CodeGen::CodeGenFunction::getTerminateHandler(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().

Member Data Documentation

const char* clang::CodeGen::EHPersonality::CatchallRethrowFn

Definition at line 611 of file CGCleanup.h.

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

const EHPersonality EHPersonality::GNU_C = { "__gcc_personality_v0", nullptr }
static

Definition at line 616 of file CGCleanup.h.

Referenced by getCPersonality().

const EHPersonality EHPersonality::GNU_C_SEH = { "__gcc_personality_seh0", nullptr }
static

Definition at line 618 of file CGCleanup.h.

Referenced by getCPersonality().

const EHPersonality EHPersonality::GNU_C_SJLJ = { "__gcc_personality_sj0", nullptr }
static

Definition at line 617 of file CGCleanup.h.

Referenced by getCPersonality().

const EHPersonality EHPersonality::GNU_CPlusPlus = { "__gxx_personality_v0", nullptr }
static

Definition at line 623 of file CGCleanup.h.

Referenced by getCXXPersonality().

const EHPersonality EHPersonality::GNU_CPlusPlus_SEH = { "__gxx_personality_seh0", nullptr }
static

Definition at line 625 of file CGCleanup.h.

Referenced by getCXXPersonality().

const EHPersonality EHPersonality::GNU_CPlusPlus_SJLJ = { "__gxx_personality_sj0", nullptr }
static

Definition at line 624 of file CGCleanup.h.

Referenced by get(), and getCXXPersonality().

const EHPersonality EHPersonality::GNU_ObjC = {"__gnu_objc_personality_v0", "objc_exception_throw"}
static

Definition at line 619 of file CGCleanup.h.

Referenced by getObjCPersonality(), and getObjCXXPersonality().

const EHPersonality EHPersonality::GNU_ObjCXX = { "__gnustep_objcxx_personality_v0", nullptr }
static

Definition at line 621 of file CGCleanup.h.

Referenced by getObjCXXPersonality().

const EHPersonality EHPersonality::GNUstep_ObjC = { "__gnustep_objc_personality_v0", nullptr }
static

Definition at line 620 of file CGCleanup.h.

Referenced by getObjCPersonality().

const EHPersonality EHPersonality::MSVC_C_specific_handler = { "__C_specific_handler", nullptr }
static

Definition at line 627 of file CGCleanup.h.

Referenced by getSEHPersonalityMSVC(), and isMSVCPersonality().

const EHPersonality EHPersonality::MSVC_CxxFrameHandler3 = { "__CxxFrameHandler3", nullptr }
static

Definition at line 628 of file CGCleanup.h.

Referenced by get(), isMSVCPersonality(), and isMSVCXXPersonality().

const EHPersonality EHPersonality::MSVC_except_handler = { "_except_handler3", nullptr }
static

Definition at line 626 of file CGCleanup.h.

Referenced by getSEHPersonalityMSVC(), and isMSVCPersonality().

const EHPersonality EHPersonality::NeXT_ObjC = { "__objc_personality_v0", nullptr }
static

Definition at line 622 of file CGCleanup.h.

Referenced by getObjCPersonality(), and getObjCXXPersonality().

const char* clang::CodeGen::EHPersonality::PersonalityFn

Definition at line 606 of file CGCleanup.h.

Referenced by getPersonalityFn().


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