Go to the documentation of this file.
62 #ifndef JAS_COMPILER_H
63 #define JAS_COMPILER_H
66 #include <jasper/jas_config.h>
71 #define inline __inline
76 #define JAS_DEPRECATED __attribute__((deprecated))
77 #define JAS_ATTRIBUTE_CONST __attribute__((const))
78 #define JAS_ATTRIBUTE_PURE __attribute__((pure))
79 #define JAS_FORCE_INLINE inline __attribute__((always_inline))
80 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
81 #define JAS_UNREACHABLE() __builtin_unreachable()
83 #define JAS_UNREACHABLE()
85 #define JAS_LIKELY(x) __builtin_expect (!!(x), 1)
86 #define JAS_UNLIKELY(x) __builtin_expect (!!(x), 0)
88 #define JAS_DEPRECATED
89 #define JAS_ATTRIBUTE_CONST
90 #define JAS_ATTRIBUTE_PURE
91 #define JAS_FORCE_INLINE inline
92 #define JAS_UNREACHABLE()
93 #define JAS_LIKELY(x) (x)
94 #define JAS_UNLIKELY(x) (x)
98 #define JAS_ATTRIBUTE_DISABLE_USAN \
99 __attribute__((no_sanitize("undefined")))
100 #elif defined(__GNUC__) && __GNUC__ >= 6
101 #define JAS_ATTRIBUTE_DISABLE_USAN \
102 __attribute__((no_sanitize_undefined))
104 #define JAS_ATTRIBUTE_DISABLE_USAN
108 #define jas_has_builtin(x) __has_builtin(x)
110 #define jas_has_builtin(x) 0