#endif
#if !defined __OPTIMIZE__ || defined UATOMIC_NO_LINK_ERROR
-static inline __attribute__((always_inline, __noreturn__))
+#ifdef ILLEGAL_INSTR
+static inline __attribute__((always_inline))
void _uatomic_link_error(void)
{
-#ifdef ILLEGAL_INSTR
/*
* generate an illegal instruction. Cannot catch this with
* linker tricks when optimizations are disabled.
*/
__asm__ __volatile__(ILLEGAL_INSTR);
+}
#else
+static inline __attribute__((always_inline, __noreturn__))
+void _uatomic_link_error(void)
+{
__builtin_trap();
-#endif
}
+#endif
#else /* #if !defined __OPTIMIZE__ || defined UATOMIC_NO_LINK_ERROR */
extern void _uatomic_link_error(void);