1
0
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:
Roland McGrath
2005-12-28 05:42:30 +00:00
parent 0317eaecb1
commit db169ed561
27 changed files with 231 additions and 69 deletions

View File

@ -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))
{