CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2012/08/12 11:14:39
Modified files:
lib/libc/arch/m88k/gen: _setjmp.S setjmp.S sigsetjmp.S
Log message:
Fix almost ten-years old bug in siglongjmp(), which would not restore a signal
mask of zero (because of flawed logic assuming finding zero in the sigjmp_buf
signal mask means sigsetjmp was invoked with a zero `savemask' argument).
While there, clean comments of all *{set,long}jmp routines, and shave a few
instructions by using bcnd insead of cmp + bb to test for zero values.
Passes the regress tests, and now devel/libsigsegv configure siglongjmp test
will not spin (this test is however flawed as it expects a signal handler
declared as running on the sigaltstack and `returning' through siglongjmp to
be invoked on the signal stack the next time the signal is raised).