X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Furcu%2Fuatomic%2Fgeneric.h;h=e31a19be7b269fbacb090ac349d4df45b433ac7e;hb=d001c88633f6a58e94eb73f4814976d13f61bd77;hp=89d1cfa98c1ab198cc8f628a0e28fdaadfbd5f90;hpb=85be4e352b8bf274704acd4d57165552cba070c7;p=urcu.git diff --git a/include/urcu/uatomic/generic.h b/include/urcu/uatomic/generic.h index 89d1cfa..e31a19b 100644 --- a/include/urcu/uatomic/generic.h +++ b/include/urcu/uatomic/generic.h @@ -38,19 +38,23 @@ extern "C" { #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);