diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2017-06-30 11:47:49 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2017-06-30 11:48:45 +0200 |
commit | 2ed75f0586897405fd26215fcfe7b9d17841affc (patch) | |
tree | 257450a0d1000e8f5652f418bac207db40664ee4 /compat/util.hpp | |
parent | 64cf540c76acf10742d32e2aa28d73a48e459bc2 (diff) |
compat: add restrict macros
Diffstat (limited to 'compat/util.hpp')
-rw-r--r-- | compat/util.hpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/compat/util.hpp b/compat/util.hpp index 4ad01544..88bff96c 100644 --- a/compat/util.hpp +++ b/compat/util.hpp @@ -46,8 +46,8 @@ template<typename t> using ptr = std::unique_ptr<t>; #endif #if defined __GNUC__ -# define likely(x) __builtin_expect((x),1) -# define unlikely(x) __builtin_expect((x),0) +# define likely(x) __builtin_expect(!!(x),1) +# define unlikely(x) __builtin_expect(!!(x),0) #else # define likely(x) (x) # define unlikely(x) (x) @@ -108,6 +108,14 @@ template<typename t> using qshared = QSharedPointer<t>; #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)) |