27 "__gxx_personality_sj0",
nullptr};
29 "__gxx_personality_seh0",
nullptr};
31 "objc_exception_throw"};
33 "__gnu_objc_personality_sj0",
"objc_exception_throw"};
35 "__gnu_objc_personality_seh0",
"objc_exception_throw"};
37 "__gnustep_objcxx_personality_v0",
nullptr};
39 "__gnustep_objc_personality_v0",
nullptr};
43 "__C_specific_handler",
nullptr};
45 "__CxxFrameHandler3",
nullptr};
47 "__gxx_wasm_personality_v0",
nullptr};
55 const llvm::Triple &
T =
Target.getTriple();
56 if (
T.isWindowsMSVCEnvironment())
70 const llvm::Triple &
T =
Target.getTriple();
71 if (
T.isWindowsMSVCEnvironment())
97 llvm_unreachable(
"bad runtime kind");
102 const llvm::Triple &
T =
Target.getTriple();
103 if (
T.isWindowsMSVCEnvironment())
125 auto Triple =
Target.getTriple();
126 if (Triple.isWindowsMSVCEnvironment())
146 if (Triple.isOSCygMing())
156 llvm_unreachable(
"bad runtime kind");
160 if (
T.getArch() == llvm::Triple::x86)
Defines the clang::LangOptions interface.
CodeGenOptions - Track various options which control how the code is optimized and passed to the back...
bool hasDWARFExceptions() const
bool hasWasmExceptions() const
bool hasSjLjExceptions() const
bool hasSEHExceptions() const
Represents a function declaration or definition.
bool usesSEHTry() const
Indicates the function uses __try.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
clang::ObjCRuntime ObjCRuntime
const VersionTuple & getVersion() const
@ MacOSX
'macosx' is the Apple-provided NeXT-derived runtime on Mac OS X platforms that use the non-fragile AB...
@ FragileMacOSX
'macosx-fragile' is the Apple-provided NeXT-derived runtime on Mac OS X platforms that use the fragil...
@ GNUstep
'gnustep' is the modern non-fragile GNUstep runtime.
@ ObjFW
'objfw' is the Objective-C runtime included in ObjFW
@ iOS
'ios' is the Apple-provided NeXT-derived runtime on iOS or the iOS simulator; it is always non-fragil...
@ GCC
'gcc' is the Objective-C runtime shipped with GCC, implementing a fragile Objective-C ABI
@ WatchOS
'watchos' is a variant of iOS for Apple's watchOS.
Exposes information about the current target.
Defines the clang::TargetInfo interface.
const EHPersonality & getEHPersonality(const TargetInfo &Target, const LangOptions &LangOpts, const CodeGenOptions &CGOpts, const FunctionDecl *FD)
Selects the personality function to use for FD, or for the translation unit as a whole when FD is nul...
static const EHPersonality & getObjCXXPersonality(const TargetInfo &Target, const CodeGenOptions &CGOpts, const LangOptions &L)
Determines the personality function to use when both C++ and Objective-C exceptions are being caught.
static const EHPersonality & getObjCPersonality(const TargetInfo &Target, const CodeGenOptions &CGOpts, const LangOptions &L)
static const EHPersonality & getSEHPersonalityMSVC(const llvm::Triple &T)
const EHPersonality & getCXXEHPersonality(const TargetInfo &Target, const CodeGenOptions &CGOpts)
Selects the personality function that plain C++ would use.
static const EHPersonality & getCPersonality(const TargetInfo &Target, const CodeGenOptions &CGOpts)
const FunctionProtoType * T
The exceptions personality for a function.
static const EHPersonality GNU_CPlusPlus_SEH
static const EHPersonality MSVC_CxxFrameHandler3
static const EHPersonality NeXT_ObjC
static const EHPersonality GNU_ObjCXX
static const EHPersonality GNU_Wasm_CPlusPlus
static const EHPersonality MSVC_C_specific_handler
static const EHPersonality GNU_CPlusPlus_SJLJ
static const EHPersonality GNUstep_ObjC
static const EHPersonality GNU_C
static const EHPersonality GNU_CPlusPlus
static const EHPersonality GNU_ObjC_SJLJ
static const EHPersonality GNU_ObjC
static const EHPersonality ZOS_CPlusPlus
static const EHPersonality GNU_C_SJLJ
static const EHPersonality GNU_C_SEH
static const EHPersonality GNU_ObjC_SEH
static const EHPersonality XL_CPlusPlus
static const EHPersonality MSVC_except_handler