1//===--- EHPersonality.cpp - Shared EH personality descriptions -----------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "clang/CodeGenUtils/EHPersonality.h"
10
11namespace clang::CodeGenUtils {
12
13const EHPersonality EHPersonality::GNU_C = {.PersonalityFn: "__gcc_personality_v0", .CatchallRethrowFn: nullptr};
14const EHPersonality EHPersonality::GNU_C_SJLJ = {.PersonalityFn: "__gcc_personality_sj0",
15 .CatchallRethrowFn: nullptr};
16const EHPersonality EHPersonality::GNU_C_SEH = {.PersonalityFn: "__gcc_personality_seh0",
17 .CatchallRethrowFn: nullptr};
18const EHPersonality EHPersonality::NeXT_ObjC = {.PersonalityFn: "__objc_personality_v0",
19 .CatchallRethrowFn: nullptr};
20const EHPersonality EHPersonality::GNU_CPlusPlus = {.PersonalityFn: "__gxx_personality_v0",
21 .CatchallRethrowFn: nullptr};
22const EHPersonality EHPersonality::GNU_CPlusPlus_SJLJ = {
23 .PersonalityFn: "__gxx_personality_sj0", .CatchallRethrowFn: nullptr};
24const EHPersonality EHPersonality::GNU_CPlusPlus_SEH = {
25 .PersonalityFn: "__gxx_personality_seh0", .CatchallRethrowFn: nullptr};
26const EHPersonality EHPersonality::GNU_ObjC = {.PersonalityFn: "__gnu_objc_personality_v0",
27 .CatchallRethrowFn: "objc_exception_throw"};
28const EHPersonality EHPersonality::GNU_ObjC_SJLJ = {
29 .PersonalityFn: "__gnu_objc_personality_sj0", .CatchallRethrowFn: "objc_exception_throw"};
30const EHPersonality EHPersonality::GNU_ObjC_SEH = {
31 .PersonalityFn: "__gnu_objc_personality_seh0", .CatchallRethrowFn: "objc_exception_throw"};
32const EHPersonality EHPersonality::GNU_ObjCXX = {
33 .PersonalityFn: "__gnustep_objcxx_personality_v0", .CatchallRethrowFn: nullptr};
34const EHPersonality EHPersonality::GNUstep_ObjC = {
35 .PersonalityFn: "__gnustep_objc_personality_v0", .CatchallRethrowFn: nullptr};
36const EHPersonality EHPersonality::MSVC_except_handler = {.PersonalityFn: "_except_handler3",
37 .CatchallRethrowFn: nullptr};
38const EHPersonality EHPersonality::MSVC_C_specific_handler = {
39 .PersonalityFn: "__C_specific_handler", .CatchallRethrowFn: nullptr};
40const EHPersonality EHPersonality::MSVC_CxxFrameHandler3 = {
41 .PersonalityFn: "__CxxFrameHandler3", .CatchallRethrowFn: nullptr};
42const EHPersonality EHPersonality::GNU_Wasm_CPlusPlus = {
43 .PersonalityFn: "__gxx_wasm_personality_v0", .CatchallRethrowFn: nullptr};
44const EHPersonality EHPersonality::XL_CPlusPlus = {.PersonalityFn: "__xlcxx_personality_v1",
45 .CatchallRethrowFn: nullptr};
46const EHPersonality EHPersonality::ZOS_CPlusPlus = {.PersonalityFn: "__zos_cxx_personality_v2",
47 .CatchallRethrowFn: nullptr};
48
49} // namespace clang::CodeGenUtils
50