Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-03 08:14:08

0001 //===----------------------------------------------------------------------===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
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 // wasm32 follows the arm32 ABI convention of using 32-bit guard.
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 // ____CXXABI_CONFIG_H