Do siglongjmp, although without running cleanup handlers in the section
of stack which it skips over.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@438 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index 25688c8..22799a7 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -1622,11 +1622,19 @@
/* not weak: __attribute__((weak)) */
void longjmp(jmp_buf env, int val)
{
- __my_pthread_testcancel();
__libc_longjmp(env, val);
}
+extern void __libc_siglongjmp (sigjmp_buf env, int val)
+ __attribute__ ((noreturn));
+void siglongjmp(sigjmp_buf env, int val)
+{
+ kludged("siglongjmp (cleanup handlers are ignored)");
+ __libc_siglongjmp(env, val);
+}
+
+
extern
int __libc_send(int s, const void *msg, size_t len, int flags);
__attribute__((weak))