17 # define GU_NORETURN __declspec(noreturn)
18 # define GU_INLINE __forceinline
19 # define GU_FORCE_INLINE __forceinline
21 # define GU_LONG(x) (x)
22 # define GU_ULONG(x) (x)
23 # define GU_LONG_LONG(x) (x)
24 # define GU_ULONG_LONG(x) (x)
25 # define GU_DEBUG_NORETURN
27 # define GU_NORETURN __attribute__((noreturn))
28 # define GU_INLINE inline
29 # define GU_FORCE_INLINE inline __attribute__((always_inline))
30 # define GU_UNUSED __attribute__((unused))
31 # define GU_LONG(x) (x##L)
32 # define GU_ULONG(x) (x##LU)
33 # define GU_LONG_LONG(x) (x##LL)
34 # define GU_ULONG_LONG(x) (x##LLU)
36 # define GU_DEBUG_NORETURN abort();
38 # define GU_DEBUG_NORETURN
52 #if 0 // typeof() is not in C99
53 #define GU_MAX(x,y) ({ \
56 (void) (&_x == &_y); \
59 #define GU_MIN(x,y) ({ \
62 (void) (&_x == &_y); \
66 #define gu_offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
69 # define gu_likely(x) __builtin_expect((x), 1)
70 # define gu_unlikely(x) __builtin_expect((x), 0)
72 # define gu_likely(x) (x)
73 # define gu_unlikely(x) (x)