Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/c++abi/include/__cxxabi_config.h
12346 views
1
//===-------------------------- __cxxabi_config.h -------------------------===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is dual licensed under the MIT and the University of Illinois Open
6
// Source Licenses. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef ____CXXABI_CONFIG_H
11
#define ____CXXABI_CONFIG_H
12
13
#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
14
!defined(__ARM_DWARF_EH__) && !defined(__SEH__)
15
#define _LIBCXXABI_ARM_EHABI
16
#endif
17
18
#if !defined(__has_attribute)
19
#define __has_attribute(_attribute_) 0
20
#endif
21
22
#if defined(_WIN32)
23
#if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
24
#define _LIBCXXABI_HIDDEN
25
#define _LIBCXXABI_DATA_VIS
26
#define _LIBCXXABI_FUNC_VIS
27
#define _LIBCXXABI_TYPE_VIS
28
#elif defined(_LIBCXXABI_BUILDING_LIBRARY)
29
#define _LIBCXXABI_HIDDEN
30
#define _LIBCXXABI_DATA_VIS __declspec(dllexport)
31
#define _LIBCXXABI_FUNC_VIS __declspec(dllexport)
32
#define _LIBCXXABI_TYPE_VIS __declspec(dllexport)
33
#else
34
#define _LIBCXXABI_HIDDEN
35
#define _LIBCXXABI_DATA_VIS __declspec(dllimport)
36
#define _LIBCXXABI_FUNC_VIS __declspec(dllimport)
37
#define _LIBCXXABI_TYPE_VIS __declspec(dllimport)
38
#endif
39
#else
40
#if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
41
#define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden")))
42
#define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default")))
43
#define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default")))
44
#if __has_attribute(__type_visibility__)
45
#define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default")))
46
#else
47
#define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default")))
48
#endif
49
#else
50
#define _LIBCXXABI_HIDDEN
51
#define _LIBCXXABI_DATA_VIS
52
#define _LIBCXXABI_FUNC_VIS
53
#define _LIBCXXABI_TYPE_VIS
54
#endif
55
#endif
56
57
#if defined(_WIN32)
58
#define _LIBCXXABI_WEAK
59
#else
60
#define _LIBCXXABI_WEAK __attribute__((__weak__))
61
#endif
62
63
#if defined(__clang__)
64
#define _LIBCXXABI_COMPILER_CLANG
65
#endif
66
67
#if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG)
68
#define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi")))
69
#else
70
#define _LIBCXXABI_NO_CFI
71
#endif
72
73
#endif // ____CXXABI_CONFIG_H
74
75