diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-08-19 12:22:31 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-08-25 11:47:59 +0200 |
commit | 87a72de7359ad89246791169a842c8de9d0c9498 (patch) | |
tree | bc487e6d70c7f946e495f9d4d453b80336687436 /compat/macros.hpp | |
parent | 42d709065e9f83419a2545e9344a392b6df3200e (diff) |
compat/util: split macros header
Diffstat (limited to 'compat/macros.hpp')
-rw-r--r-- | compat/macros.hpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/compat/macros.hpp b/compat/macros.hpp new file mode 100644 index 00000000..84d6bd03 --- /dev/null +++ b/compat/macros.hpp @@ -0,0 +1,65 @@ +#pragma once + +#if defined _MSC_VER +# define never_inline __declspec(noinline) +#elif defined __GNUG__ +# define never_inline __attribute__((noinline)) +#else +# define never_inline +#endif + +#if defined _MSC_VER || defined __GNUG__ +# define restrict __restrict +#else +# define restrict +#endif + +#if defined _MSC_VER +# define restrict_ref restrict +#elif defined __GNUG__ +# define restrict_ref restrict +#else +# define restrict_ref +#endif + +#if defined _MSC_VER +# define force_inline __forceinline +#elif defined __GNUG__ +# define force_inline __attribute__((always_inline, gnu_inline)) inline +#else +# define force_inline inline +#endif + +#if defined __GNUG__ +# define flatten __attribute__((flatten, noinline)) +#else +# define flatten +#endif + +#ifdef Q_CREATOR_RUN +# define DEFUN_WARN_UNUSED +#elif defined(_MSC_VER) +# define DEFUN_WARN_UNUSED _Check_return_ +#else +# define DEFUN_WARN_UNUSED __attribute__((warn_unused_result)) +#endif + +#if defined(__GNUG__) +# define unused(t, i) t __attribute__((unused)) i +#else +# define unused(t, i) t +#endif + +#if !defined(_WIN32) +# define unused_on_unix(t, i) unused(t, i) +#else +# define unused_on_unix(t, i) t i +#endif + +#if defined __GNUC__ +# define likely(x) __builtin_expect(!!(x),1) +# define unlikely(x) __builtin_expect(!!(x),0) +#else +# define likely(x) (x) +# define unlikely(x) (x) +#endif |