forked from enlightenment/efl
eina: Fix compilation with clang
It's not because the bug with __builtin_prefetch is inside clang/llvm that we must break the build for people who prefer it over gcc. As soon as a non-broken version is out, the ifdef must be either removed (and ask people to update their clang install) or add a version check based on __clang_xxx__. Compilation tested with clang 3.8.1 and gcc 6.2.1.
This commit is contained in:
parent
17ac58a081
commit
119e35b791
|
@ -193,10 +193,18 @@
|
|||
# define EINA_UNLIKELY(exp) __builtin_expect((exp), 0)
|
||||
# define EINA_LIKELY(exp) __builtin_expect((exp), 1)
|
||||
# define EINA_SENTINEL __attribute__((__sentinel__))
|
||||
# define EINA_PREFETCH(arg) __builtin_prefetch(arg)
|
||||
# define EINA_PREFETCH_WRITE(arg) __builtin_prefetch(arg, 1)
|
||||
# define EINA_PREFETCH_NOCACHE(arg) __builtin_prefetch(arg, 0, 0)
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg) __builtin_prefetch(arg, 1, 0)
|
||||
# ifndef __clang__
|
||||
# define EINA_PREFETCH(arg) __builtin_prefetch(arg)
|
||||
# define EINA_PREFETCH_WRITE(arg) __builtin_prefetch(arg, 1)
|
||||
# define EINA_PREFETCH_NOCACHE(arg) __builtin_prefetch(arg, 0, 0)
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg) __builtin_prefetch(arg, 1, 0)
|
||||
# else
|
||||
/* LLVM Clang workaround (crash on compilation) */
|
||||
# define EINA_PREFETCH(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_WRITE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg) ((void) (arg))
|
||||
# endif
|
||||
# else
|
||||
# define EINA_PRINTF(fmt, arg)
|
||||
# define EINA_SCANF(fmt, arg)
|
||||
|
@ -206,10 +214,10 @@
|
|||
# define EINA_UNLIKELY(exp) exp
|
||||
# define EINA_LIKELY(exp) exp
|
||||
# define EINA_SENTINEL
|
||||
# define EINA_PREFETCH(arg)
|
||||
# define EINA_PREFETCH_WRITE(arg)
|
||||
# define EINA_PREFETCH_NOCACHE(arg)
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg)
|
||||
# define EINA_PREFETCH(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_WRITE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg) ((void) (arg))
|
||||
# endif
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
|
@ -231,10 +239,10 @@
|
|||
# define EINA_UNLIKELY(exp) exp
|
||||
# define EINA_LIKELY(exp) exp
|
||||
# define EINA_SENTINEL
|
||||
# define EINA_PREFETCH(arg)
|
||||
# define EINA_PREFETCH_WRITE(arg)
|
||||
# define EINA_PREFETCH_NOCACHE(arg)
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg)
|
||||
# define EINA_PREFETCH(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_WRITE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg) ((void) (arg))
|
||||
|
||||
#elif defined(__SUNPRO_C)
|
||||
# define EINA_UNUSED
|
||||
|
@ -260,10 +268,10 @@
|
|||
# define EINA_UNLIKELY(exp) exp
|
||||
# define EINA_LIKELY(exp) exp
|
||||
# define EINA_SENTINEL
|
||||
# define EINA_PREFETCH(arg)
|
||||
# define EINA_PREFETCH_WRITE(arg)
|
||||
# define EINA_PREFETCH_NOCACHE(arg)
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg)
|
||||
# define EINA_PREFETCH(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_WRITE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE(arg) ((void) (arg))
|
||||
# define EINA_PREFETCH_NOCACHE_WRITE(arg) ((void) (arg))
|
||||
|
||||
#else /* ! __GNUC__ && ! _MSC_VER && ! __SUNPRO_C */
|
||||
|
||||
|
|
Loading…
Reference in New Issue