clang 23.0.0git
clang::CIRGen::EHPersonality Struct Reference

The exceptions personality for a function. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/CIRGenCleanup.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 (CIRGenModule &cgm, const clang::FunctionDecl *fd)
static const EHPersonalityget (CIRGenFunction &cgf)

Public Attributes

const char * personalityFn = nullptr
const char * catchallRethrowFn = nullptr

Static Public Attributes

static const EHPersonality GNU_C = {"__gcc_personality_v0", nullptr}
static const EHPersonality GNU_C_SJLJ
static const EHPersonality GNU_C_SEH
static const EHPersonality GNU_ObjC
static const EHPersonality GNU_ObjC_SJLJ
static const EHPersonality GNU_ObjC_SEH
static const EHPersonality GNUstep_ObjC
static const EHPersonality GNU_ObjCXX
static const EHPersonality NeXT_ObjC
static const EHPersonality GNU_CPlusPlus
static const EHPersonality GNU_CPlusPlus_SJLJ
static const EHPersonality GNU_CPlusPlus_SEH
static const EHPersonality MSVC_except_handler
static const EHPersonality MSVC_C_specific_handler
static const EHPersonality MSVC_CxxFrameHandler3
static const EHPersonality GNU_Wasm_CPlusPlus
static const EHPersonality XL_CPlusPlus
static const EHPersonality ZOS_CPlusPlus

Detailed Description

The exceptions personality for a function.

Definition at line 232 of file CIRGenCleanup.h.

Member Function Documentation

◆ get() [1/2]

◆ get() [2/2]

◆ isMSVCPersonality()

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

Definition at line 269 of file CIRGenCleanup.h.

References MSVC_C_specific_handler, MSVC_CxxFrameHandler3, and MSVC_except_handler.

Referenced by usesFuncletPads().

◆ isMSVCXXPersonality()

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

Definition at line 276 of file CIRGenCleanup.h.

References MSVC_CxxFrameHandler3.

◆ isWasmPersonality()

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

Definition at line 274 of file CIRGenCleanup.h.

References GNU_Wasm_CPlusPlus.

Referenced by usesFuncletPads().

◆ usesFuncletPads()

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

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

Definition at line 265 of file CIRGenCleanup.h.

References isMSVCPersonality(), and isWasmPersonality().

Member Data Documentation

◆ catchallRethrowFn

const char* clang::CIRGen::EHPersonality::catchallRethrowFn = nullptr

Definition at line 238 of file CIRGenCleanup.h.

◆ GNU_C

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

Definition at line 244 of file CIRGenCleanup.h.

Referenced by getCPersonality().

◆ GNU_C_SEH

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

Definition at line 246 of file CIRGenCleanup.h.

Referenced by getCPersonality().

◆ GNU_C_SJLJ

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

Definition at line 245 of file CIRGenCleanup.h.

Referenced by getCPersonality().

◆ GNU_CPlusPlus

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

Definition at line 253 of file CIRGenCleanup.h.

Referenced by getCXXPersonality().

◆ GNU_CPlusPlus_SEH

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

Definition at line 255 of file CIRGenCleanup.h.

Referenced by getCXXPersonality().

◆ GNU_CPlusPlus_SJLJ

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

Definition at line 254 of file CIRGenCleanup.h.

Referenced by getCXXPersonality().

◆ GNU_ObjC

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

Definition at line 247 of file CIRGenCleanup.h.

Referenced by getObjCPersonality().

◆ GNU_ObjC_SEH

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

Definition at line 249 of file CIRGenCleanup.h.

Referenced by getObjCPersonality().

◆ GNU_ObjC_SJLJ

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

Definition at line 248 of file CIRGenCleanup.h.

Referenced by getObjCPersonality().

◆ GNU_ObjCXX

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

Definition at line 251 of file CIRGenCleanup.h.

Referenced by getObjCXXPersonality().

◆ GNU_Wasm_CPlusPlus

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

Definition at line 259 of file CIRGenCleanup.h.

Referenced by getCXXPersonality(), and isWasmPersonality().

◆ GNUstep_ObjC

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

Definition at line 250 of file CIRGenCleanup.h.

Referenced by getObjCPersonality().

◆ MSVC_C_specific_handler

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

Definition at line 257 of file CIRGenCleanup.h.

Referenced by getSEHPersonalityMSVC(), and isMSVCPersonality().

◆ MSVC_CxxFrameHandler3

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

Definition at line 258 of file CIRGenCleanup.h.

Referenced by getCPersonality(), getCXXPersonality(), getObjCPersonality(), getObjCXXPersonality(), isMSVCPersonality(), and isMSVCXXPersonality().

◆ MSVC_except_handler

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

Definition at line 256 of file CIRGenCleanup.h.

Referenced by getSEHPersonalityMSVC(), and isMSVCPersonality().

◆ NeXT_ObjC

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

Definition at line 252 of file CIRGenCleanup.h.

Referenced by getObjCPersonality().

◆ personalityFn

const char* clang::CIRGen::EHPersonality::personalityFn = nullptr

Definition at line 233 of file CIRGenCleanup.h.

Referenced by getPersonalityFn().

◆ XL_CPlusPlus

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

Definition at line 260 of file CIRGenCleanup.h.

Referenced by getCXXPersonality().

◆ ZOS_CPlusPlus

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

Definition at line 261 of file CIRGenCleanup.h.


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