 |
QElectroTech 0.200.1-dev
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
4#ifndef ZIP7_INC_COMPILER_H
5#define ZIP7_INC_COMPILER_H
8# define Z7_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
10#if defined(__clang__) && defined(__apple_build_version__)
11# define Z7_APPLE_CLANG_VERSION Z7_CLANG_VERSION
12#elif defined(__clang__)
13# define Z7_LLVM_CLANG_VERSION Z7_CLANG_VERSION
14#elif defined(__GNUC__)
15# define Z7_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
19#if !defined(__clang__) && !defined(__GNUC__)
20#define Z7_MSC_VER_ORIGINAL _MSC_VER
24#if defined(__MINGW32__) || defined(__MINGW64__)
32#pragma GCC diagnostic ignored "-Wpadded"
39 #define RPC_NO_WINDOWS_H
41 #pragma warning(disable : 4201)
42 #pragma warning(disable : 4214)
45#if defined(_MSC_VER) && _MSC_VER >= 1800
46#pragma warning(disable : 4464)
51#pragma warning(disable : 4710)
55#pragma warning(disable : 4514)
61#pragma warning(disable : 4714)
75#pragma warning(disable : 4711)
76#pragma warning(disable : 4820)
78#if _MSC_VER >= 1400 && _MSC_VER < 1920
82#pragma warning(disable : 4668)
87#pragma warning(disable : 4255)
92#pragma warning(disable : 5045)
99#if defined(__clang__) && (__clang_major__ >= 4)
100 #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE \
101 _Pragma("clang loop unroll(disable)") \
102 _Pragma("clang loop vectorize(disable)")
103 #define Z7_ATTRIB_NO_VECTORIZE
104#elif defined(__GNUC__) && (__GNUC__ >= 5)
105 #define Z7_ATTRIB_NO_VECTORIZE __attribute__((optimize("no-tree-vectorize")))
107 #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE
108#elif defined(_MSC_VER) && (_MSC_VER >= 1920)
109 #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE \
110 _Pragma("loop( no_vector )")
111 #define Z7_ATTRIB_NO_VECTORIZE
113 #define Z7_PRAGMA_OPT_DISABLE_LOOP_UNROLL_VECTORIZE
114 #define Z7_ATTRIB_NO_VECTORIZE
117#if defined(MY_CPU_X86_OR_AMD64) && ( \
118 defined(__clang__) && (__clang_major__ >= 4) \
119 || defined(__GNUC__) && (__GNUC__ >= 5))
120 #define Z7_ATTRIB_NO_SSE __attribute__((__target__("no-sse")))
122 #define Z7_ATTRIB_NO_SSE
125#define Z7_ATTRIB_NO_VECTOR \
126 Z7_ATTRIB_NO_VECTORIZE \
130#if defined(__clang__) && (__clang_major__ >= 8) \
131 || defined(__GNUC__) && (__GNUC__ >= 1000) \
134 #define Z7_LIKELY(x) (__builtin_expect((x), 1))
135 #define Z7_UNLIKELY(x) (__builtin_expect((x), 0))
139 #define Z7_LIKELY(x) (x)
140 #define Z7_UNLIKELY(x) (x)
145#if (defined(Z7_CLANG_VERSION) && (Z7_CLANG_VERSION >= 36000))
146#define Z7_DIAGNOSCTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER \
147 _Pragma("GCC diagnostic push") \
148 _Pragma("GCC diagnostic ignored \"-Wreserved-macro-identifier\"")
149#define Z7_DIAGNOSCTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER \
150 _Pragma("GCC diagnostic pop")
152#define Z7_DIAGNOSCTIC_IGNORE_BEGIN_RESERVED_MACRO_IDENTIFIER
153#define Z7_DIAGNOSCTIC_IGNORE_END_RESERVED_MACRO_IDENTIFIER
156#define UNUSED_VAR(x) (void)x;