summaryrefslogtreecommitdiffhomepage
path: root/compat/macros.hpp
diff options
context:
space:
mode:
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