Files
micropython/py
Jeff Epler a254bbca79 py/nlrx86: Fix nlr_push to build with Clang 19.
This version is believed to work from Clang 3.0 to 22.1.0
(all versions on godbolt at the time of writing).

Clang rejects the `(void)x;` notation for a used variable
in a naked asm function, so do this only conditionally.

Introduces use of `__builtin_unreachable()` with gcc.
This saves 1 byte by causing gcc not to emit an `ud2` opcode
at the end. However, the unreachable sanitizer (enabled by
default(!) on Ubuntu 24.04 with gcc version 13.3.0) corrupts
the ebx register, so it must be disabled.

Clang does not accept `__builtin_unreachable`
or `return 0;` here, UNREACHABLE must expand to nothing.

Closes: #17415

Signed-off-by: Jeff Epler <jepler@unpythonic.net>
2026-05-07 23:18:31 +10:00
..
2026-04-08 17:01:10 +10:00
2026-04-08 17:01:10 +10:00
2026-05-07 23:14:22 +10:00
2025-07-25 10:56:02 +10:00
2026-05-07 23:13:59 +10:00
2025-02-25 16:11:33 +11:00