mirror of
https://github.com/HeyPuter/gex.git
synced 2026-11-13 20:12:43 -10:00
clang's wasm SjLj lowering recognises only calls to setjmp. sigsetjmp returned 0 once and a siglongjmp to it was an uncaught exception (bash trapped on its first error: 'indirect call type mismatch'). gexcc's include/setjmp.h (searched before musl's, include_next) makes both macros over setjmp; rt/sigsetjmp.c saves the mask before and restores it on the second return, as musl's assembly does elsewhere. No musl change. tests/gexcc/sigjmp.c: out of nested calls, out of a signal handler (the mask restored), _setjmp/_longjmp. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_f83b79c55d9e472396aae1a74ab72f57