clang 22.0.0git
clang::CodeGen::EHPersonality Struct Reference

The exceptions personality for a function. More...

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

Public Member Functions

bool usesFuncletPads () const
 Does this personality use landingpads or the family of pad instructions designed to form funclets?
bool isMSVCPersonality () const
bool isWasmPersonality () 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 GNU_ObjC_SJLJ = {"__gnu_objc_personality_sj0", "objc_exception_throw"}
static const EHPersonality GNU_ObjC_SEH = {"__gnu_objc_personality_seh0", "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 }
static const EHPersonality GNU_Wasm_CPlusPlus = { "__gxx_wasm_personality_v0", nullptr }
static const EHPersonality XL_CPlusPlus
static const EHPersonality ZOS_CPlusPlus

Detailed Description

The exceptions personality for a function.

Definition at line 660 of file CGCleanup.h.

Member Function Documentation

◆ get() [1/2]

◆ get() [2/2]

◆ isMSVCPersonality()

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

◆ isMSVCXXPersonality()

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

Definition at line 703 of file CGCleanup.h.

References MSVC_CxxFrameHandler3.

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

◆ isWasmPersonality()

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

Definition at line 701 of file CGCleanup.h.

References GNU_Wasm_CPlusPlus.

Referenced by usesFuncletPads().

◆ usesFuncletPads()

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 692 of file CGCleanup.h.

References isMSVCPersonality(), and isWasmPersonality().

Referenced by clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt(), clang::CodeGen::CodeGenFunction::getInvokeDestImpl(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().

Member Data Documentation

◆ CatchallRethrowFn

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

Definition at line 666 of file CGCleanup.h.

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

◆ GNU_C

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

Definition at line 671 of file CGCleanup.h.

Referenced by getCPersonality().

◆ GNU_C_SEH

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

Definition at line 673 of file CGCleanup.h.

Referenced by getCPersonality().

◆ GNU_C_SJLJ

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

Definition at line 672 of file CGCleanup.h.

Referenced by getCPersonality().

◆ GNU_CPlusPlus

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

Definition at line 680 of file CGCleanup.h.

Referenced by getCXXPersonality().

◆ GNU_CPlusPlus_SEH

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

Definition at line 682 of file CGCleanup.h.

Referenced by getCXXPersonality(), getObjCPersonality(), and getObjCXXPersonality().

◆ GNU_CPlusPlus_SJLJ

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

Definition at line 681 of file CGCleanup.h.

Referenced by getCXXPersonality().

◆ GNU_ObjC

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

Definition at line 674 of file CGCleanup.h.

Referenced by getObjCPersonality().

◆ GNU_ObjC_SEH

const EHPersonality EHPersonality::GNU_ObjC_SEH = {"__gnu_objc_personality_seh0", "objc_exception_throw"}
static

Definition at line 676 of file CGCleanup.h.

Referenced by getObjCPersonality().

◆ GNU_ObjC_SJLJ

const EHPersonality EHPersonality::GNU_ObjC_SJLJ = {"__gnu_objc_personality_sj0", "objc_exception_throw"}
static

Definition at line 675 of file CGCleanup.h.

Referenced by getObjCPersonality().

◆ GNU_ObjCXX

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

Definition at line 678 of file CGCleanup.h.

Referenced by getObjCXXPersonality().

◆ GNU_Wasm_CPlusPlus

const EHPersonality EHPersonality::GNU_Wasm_CPlusPlus = { "__gxx_wasm_personality_v0", nullptr }
static

Definition at line 686 of file CGCleanup.h.

Referenced by getCXXPersonality(), and isWasmPersonality().

◆ GNUstep_ObjC

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

Definition at line 677 of file CGCleanup.h.

Referenced by getObjCPersonality().

◆ MSVC_C_specific_handler

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

Definition at line 684 of file CGCleanup.h.

Referenced by getSEHPersonalityMSVC(), and isMSVCPersonality().

◆ MSVC_CxxFrameHandler3

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

◆ MSVC_except_handler

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

Definition at line 683 of file CGCleanup.h.

Referenced by getSEHPersonalityMSVC(), and isMSVCPersonality().

◆ NeXT_ObjC

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

Definition at line 679 of file CGCleanup.h.

Referenced by getObjCPersonality().

◆ PersonalityFn

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

Definition at line 661 of file CGCleanup.h.

Referenced by getPersonalityFn().

◆ XL_CPlusPlus

const EHPersonality EHPersonality::XL_CPlusPlus
static
Initial value:
= {"__xlcxx_personality_v1",
nullptr}

Definition at line 687 of file CGCleanup.h.

Referenced by getCXXPersonality().

◆ ZOS_CPlusPlus

const EHPersonality EHPersonality::ZOS_CPlusPlus
static
Initial value:
= {"__zos_cxx_personality_v2",
nullptr}

Definition at line 688 of file CGCleanup.h.

Referenced by getCXXPersonality().


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