mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
(PTR_MANGLE): Fix cast. * sysdeps/alpha/bits/setjmp.h (_JMPBUF_UNWINDS): Take third argument DEMANGLE, and pass SP value through it. * sysdeps/hppa/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/i386/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/m68k/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/mips/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/powerpc/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/s390/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/sh/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/sparc/sparc32/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/setjmp.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Likewise. * sysdeps/x86_64/bits/setjmp.h (_JMPBUF_UNWINDS): Likewise. * hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Pass inline demangler function to _JMPBUF_UNWINDS. * sysdeps/mach/hurd/jmp-unwind.c (demangle_ptr): New function. (_longjmp_unwind): Pass it to _JMPBUF_UNWINDS.
This commit is contained in:
@ -70,11 +70,19 @@ _hurdsig_longjmp_from_handler (void *data, jmp_buf env, int val)
|
||||
|
||||
struct hurd_userlink *link;
|
||||
|
||||
inline uintptr_t demangle_ptr (uintptr_t x)
|
||||
{
|
||||
# ifdef PTR_DEMANGLE
|
||||
PTR_DEMANGLE (x);
|
||||
# endif
|
||||
return x;
|
||||
}
|
||||
|
||||
/* Continue _longjmp_unwind's job of running the unwind
|
||||
forms for frames being unwound, since we will not
|
||||
return to its loop like this one, which called us. */
|
||||
for (link = ss->active_resources;
|
||||
link && _JMPBUF_UNWINDS (env[0].__jmpbuf, link);
|
||||
link && _JMPBUF_UNWINDS (env[0].__jmpbuf, link, demangle_ptr);
|
||||
link = link->thread.next)
|
||||
if (_hurd_userlink_unlink (link))
|
||||
{
|
||||
|
Reference in New Issue
Block a user