summaryrefslogtreecommitdiffhomepage
path: root/compat/macros.hpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2017-08-19 12:22:31 +0200
committerStanislaw Halik <sthalik@misaki.pl>2017-08-25 11:47:59 +0200
commit87a72de7359ad89246791169a842c8de9d0c9498 (patch)
treebc487e6d70c7f946e495f9d4d453b80336687436 /compat/macros.hpp
parent42d709065e9f83419a2545e9344a392b6df3200e (diff)
compat/util: split macros header
Diffstat (limited to 'compat/macros.hpp')
-rw-r--r--compat/macros.hpp65
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