py: Introduce MP_UNREACHABLE macro to annotate unreachable code.
And use it to replace the same pattern at the end of nlrthumb.c:nlr_jump.
This commit is contained in:
parent
887f64eed8
commit
63046d800d
|
@ -1440,6 +1440,15 @@ typedef double mp_float_t;
|
|||
#define MP_UNLIKELY(x) __builtin_expect((x), 0)
|
||||
#endif
|
||||
|
||||
// To annotate that code is unreachable
|
||||
#ifndef MP_UNREACHABLE
|
||||
#if defined(__GNUC__)
|
||||
#define MP_UNREACHABLE __builtin_unreachable();
|
||||
#else
|
||||
#define MP_UNREACHABLE for (;;);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef MP_HTOBE16
|
||||
#if MP_ENDIANNESS_LITTLE
|
||||
# define MP_HTOBE16(x) ((uint16_t)( (((x) & 0xff) << 8) | (((x) >> 8) & 0xff) ))
|
||||
|
|
|
@ -127,11 +127,7 @@ NORETURN void nlr_jump(void *val) {
|
|||
: // clobbered registers
|
||||
);
|
||||
|
||||
#if defined(__GNUC__)
|
||||
__builtin_unreachable();
|
||||
#else
|
||||
for (;;); // needed to silence compiler warning
|
||||
#endif
|
||||
MP_UNREACHABLE
|
||||
}
|
||||
|
||||
#endif // MICROPY_NLR_THUMB
|
||||
|
|
Loading…
Reference in New Issue