Path: blob/master/libs/c++abi/include/__cxxabi_config.h
12346 views
//===-------------------------- __cxxabi_config.h -------------------------===//1//2// The LLVM Compiler Infrastructure3//4// This file is dual licensed under the MIT and the University of Illinois Open5// Source Licenses. See LICENSE.TXT for details.6//7//===----------------------------------------------------------------------===//89#ifndef ____CXXABI_CONFIG_H10#define ____CXXABI_CONFIG_H1112#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \13!defined(__ARM_DWARF_EH__) && !defined(__SEH__)14#define _LIBCXXABI_ARM_EHABI15#endif1617#if !defined(__has_attribute)18#define __has_attribute(_attribute_) 019#endif2021#if defined(_WIN32)22#if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)23#define _LIBCXXABI_HIDDEN24#define _LIBCXXABI_DATA_VIS25#define _LIBCXXABI_FUNC_VIS26#define _LIBCXXABI_TYPE_VIS27#elif defined(_LIBCXXABI_BUILDING_LIBRARY)28#define _LIBCXXABI_HIDDEN29#define _LIBCXXABI_DATA_VIS __declspec(dllexport)30#define _LIBCXXABI_FUNC_VIS __declspec(dllexport)31#define _LIBCXXABI_TYPE_VIS __declspec(dllexport)32#else33#define _LIBCXXABI_HIDDEN34#define _LIBCXXABI_DATA_VIS __declspec(dllimport)35#define _LIBCXXABI_FUNC_VIS __declspec(dllimport)36#define _LIBCXXABI_TYPE_VIS __declspec(dllimport)37#endif38#else39#if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)40#define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden")))41#define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default")))42#define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default")))43#if __has_attribute(__type_visibility__)44#define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default")))45#else46#define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default")))47#endif48#else49#define _LIBCXXABI_HIDDEN50#define _LIBCXXABI_DATA_VIS51#define _LIBCXXABI_FUNC_VIS52#define _LIBCXXABI_TYPE_VIS53#endif54#endif5556#if defined(_WIN32)57#define _LIBCXXABI_WEAK58#else59#define _LIBCXXABI_WEAK __attribute__((__weak__))60#endif6162#if defined(__clang__)63#define _LIBCXXABI_COMPILER_CLANG64#endif6566#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG)67#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi")))68#else69#define _LIBCXXABI_NO_CFI70#endif7172#endif // ____CXXABI_CONFIG_H737475