File indexing completed on 2026-05-03 08:14:08
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef ____CXXABI_CONFIG_H
0010 #define ____CXXABI_CONFIG_H
0011
0012 #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
0013 !defined(__ARM_DWARF_EH__) && !defined(__SEH__)
0014 #define _LIBCXXABI_ARM_EHABI
0015 #endif
0016
0017 #if !defined(__has_attribute)
0018 #define __has_attribute(_attribute_) 0
0019 #endif
0020
0021 #if defined(__clang__)
0022 # define _LIBCXXABI_COMPILER_CLANG
0023 # ifndef __apple_build_version__
0024 # define _LIBCXXABI_CLANG_VER (__clang_major__ * 100 + __clang_minor__)
0025 # endif
0026 #elif defined(__GNUC__)
0027 # define _LIBCXXABI_COMPILER_GCC
0028 #elif defined(_MSC_VER)
0029 # define _LIBCXXABI_COMPILER_MSVC
0030 #elif defined(__IBMCPP__)
0031 # define _LIBCXXABI_COMPILER_IBM
0032 #endif
0033
0034 #if defined(_WIN32)
0035 #if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS) || (defined(__MINGW32__) && !defined(_LIBCXXABI_BUILDING_LIBRARY))
0036 #define _LIBCXXABI_HIDDEN
0037 #define _LIBCXXABI_DATA_VIS
0038 #define _LIBCXXABI_FUNC_VIS
0039 #define _LIBCXXABI_TYPE_VIS
0040 #elif defined(_LIBCXXABI_BUILDING_LIBRARY)
0041 #define _LIBCXXABI_HIDDEN
0042 #define _LIBCXXABI_DATA_VIS __declspec(dllexport)
0043 #define _LIBCXXABI_FUNC_VIS __declspec(dllexport)
0044 #define _LIBCXXABI_TYPE_VIS __declspec(dllexport)
0045 #else
0046 #define _LIBCXXABI_HIDDEN
0047 #define _LIBCXXABI_DATA_VIS __declspec(dllimport)
0048 #define _LIBCXXABI_FUNC_VIS __declspec(dllimport)
0049 #define _LIBCXXABI_TYPE_VIS __declspec(dllimport)
0050 #endif
0051 #else
0052 #if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
0053 #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden")))
0054 #define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default")))
0055 #define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default")))
0056 #if __has_attribute(__type_visibility__)
0057 #define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default")))
0058 #else
0059 #define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default")))
0060 #endif
0061 #else
0062 #define _LIBCXXABI_HIDDEN
0063 #define _LIBCXXABI_DATA_VIS
0064 #define _LIBCXXABI_FUNC_VIS
0065 #define _LIBCXXABI_TYPE_VIS
0066 #endif
0067 #endif
0068
0069 #if defined(_LIBCXXABI_COMPILER_MSVC)
0070 #define _LIBCXXABI_WEAK
0071 #else
0072 #define _LIBCXXABI_WEAK __attribute__((__weak__))
0073 #endif
0074
0075 #if defined(__clang__)
0076 #define _LIBCXXABI_COMPILER_CLANG
0077 #elif defined(__GNUC__)
0078 #define _LIBCXXABI_COMPILER_GCC
0079 #endif
0080
0081 #if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG)
0082 #define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi")))
0083 #else
0084 #define _LIBCXXABI_NO_CFI
0085 #endif
0086
0087
0088 #if defined(__arm__) || defined(__wasm32__) || defined(__ARM64_ARCH_8_32__)
0089 # define _LIBCXXABI_GUARD_ABI_ARM
0090 #endif
0091
0092 #if defined(_LIBCXXABI_COMPILER_CLANG)
0093 # if !__has_feature(cxx_exceptions)
0094 # define _LIBCXXABI_NO_EXCEPTIONS
0095 # endif
0096 #elif defined(_LIBCXXABI_COMPILER_GCC) && !defined(__EXCEPTIONS)
0097 # define _LIBCXXABI_NO_EXCEPTIONS
0098 #endif
0099
0100 #if defined(_WIN32)
0101 #define _LIBCXXABI_DTOR_FUNC __thiscall
0102 #else
0103 #define _LIBCXXABI_DTOR_FUNC
0104 #endif
0105
0106 #if __cplusplus < 201103L
0107 # define _LIBCXXABI_NOEXCEPT throw()
0108 #else
0109 # define _LIBCXXABI_NOEXCEPT noexcept
0110 #endif
0111
0112 #endif