apibegin.h 2.94 KB
Newer Older
1
2
3
4
5
6
// [AsmJit]
// Complete x86/x64 JIT and Remote Assembler for C++.
//
// [License]
// Zlib - See LICENSE.md file in the package.

7
// [Dependencies - AsmJit]
8
9
10
11
#if !defined(_ASMJIT_BUILD_H)
#include "build.h"
#endif // !_ASMJIT_BUILD_H

12
13
14
15
16
17
18
// [Guard]
#if !defined(ASMJIT_API_SCOPE)
# define ASMJIT_API_SCOPE
#else
# error "AsmJit - Api-Scope is already active, previous scope not closed by apiend.h?"
#endif // ASMJIT_API_SCOPE

19
// ============================================================================
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// [Override]
// ============================================================================

#if !defined(ASMJIT_CC_HAS_OVERRIDE) && !defined(override)
# define override
# define ASMJIT_UNDEF_OVERRIDE
#endif // !ASMJIT_CC_HAS_OVERRIDE && !override

// ============================================================================
// [NoExcept]
// ============================================================================

#if !defined(ASMJIT_CC_HAS_NOEXCEPT) && !defined(noexcept)
# define noexcept ASMJIT_NOEXCEPT
# define ASMJIT_UNDEF_NOEXCEPT
#endif // !ASMJIT_CC_HAS_NOEXCEPT && !noexcept

// ============================================================================
// [MSC]
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// ============================================================================

#if defined(_MSC_VER)
// Disable some warnings we know about
# pragma warning(push)
# pragma warning(disable: 4127) // conditional expression is constant
# pragma warning(disable: 4201) // nameless struct/union
# pragma warning(disable: 4244) // '+=' : conversion from 'int' to 'x', possible
                                // loss of data
# pragma warning(disable: 4251) // struct needs to have dll-interface to be used
                                // by clients of struct ...
# pragma warning(disable: 4275) // non dll-interface struct ... used as base for
                                // dll-interface struct
# pragma warning(disable: 4355) // this used in base member initializer list
# pragma warning(disable: 4480) // specifying underlying type for enum
# pragma warning(disable: 4800) // forcing value to bool 'true' or 'false'

// Rename symbols.
# if !defined(vsnprintf)
58
#  define ASMJIT_UNDEF_VSNPRINTF
59
60
61
#  define vsnprintf _vsnprintf
# endif // !vsnprintf
# if !defined(snprintf)
62
#  define ASMJIT_UNDEF_SNPRINTF
63
64
65
66
67
#  define snprintf _snprintf
# endif // !snprintf
#endif // _MSC_VER

// ============================================================================
68
69
70
71
72
73
74
75
76
77
// [CLang]
// ============================================================================

#if defined(__clang__)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wunnamed-type-template-args"
#endif // __clang__

// ============================================================================
// [GCC]
78
79
80
81
82
// ============================================================================

#if defined(__GNUC__) && !defined(__clang__)
# if __GNUC__ >= 4 && !defined(__MINGW32__)
#  pragma GCC visibility push(hidden)
83
# endif // GCC 4+
84
#endif // __GNUC__