1#define DUK_NORETURN(decl)  decl __attribute__((noreturn))
2
3#if defined(__clang__) && defined(__has_builtin)
4#if __has_builtin(__builtin_unreachable)
5#define DUK_UNREACHABLE()  do { __builtin_unreachable(); } while (0)
6#endif
7#endif
8
9#define DUK_USE_BRANCH_HINTS
10#define DUK_LIKELY(x)    __builtin_expect((x), 1)
11#define DUK_UNLIKELY(x)  __builtin_expect((x), 0)
12#if defined(__clang__) && defined(__has_builtin)
13#if __has_builtin(__builtin_unpredictable)
14#define DUK_UNPREDICTABLE(x)  __builtin_unpredictable((x))
15#endif
16#endif
17
18#if defined(DUK_F_C99) || defined(DUK_F_CPP11)
19#define DUK_NOINLINE        __attribute__((noinline))
20#define DUK_INLINE          inline
21#define DUK_ALWAYS_INLINE   inline __attribute__((always_inline))
22#endif
23
24#snippet "gcc_clang_visibility.h.in"
25
26#define DUK_USE_COMPILER_STRING "emscripten"
27
28#undef DUK_USE_VARIADIC_MACROS
29#if defined(DUK_F_C99) || defined(DUK_F_CPP11)
30#define DUK_USE_VARIADIC_MACROS
31#endif
32
33#define DUK_USE_UNION_INITIALIZERS
34
35#undef DUK_USE_FLEX_C99
36#undef DUK_USE_FLEX_ZEROSIZE
37#undef DUK_USE_FLEX_ONESIZE
38#if defined(DUK_F_C99)
39#define DUK_USE_FLEX_C99
40#else
41#define DUK_USE_FLEX_ZEROSIZE
42#endif
43
44#undef DUK_USE_GCC_PRAGMAS
45#define DUK_USE_PACK_CLANG_ATTR
46