aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2010-09-21 10:47:14 -0700
committerUlrich Drepper <drepper@redhat.com>2010-09-21 10:47:14 -0700
commitc3758feebf7c8786231465da664743c6f0ec79cc (patch)
treebb54c753c0ef675640badb7ebf9d96c1493d4845
parenta545ecd99ba404b36081bf65ebe570c2b6600eaa (diff)
downloadglibc-c3758feebf7c8786231465da664743c6f0ec79cc.zip
glibc-c3758feebf7c8786231465da664743c6f0ec79cc.tar.gz
glibc-c3758feebf7c8786231465da664743c6f0ec79cc.tar.bz2
Fix namespace pollution in pthread_cleanup_push.
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/pthread/pthread.h12
2 files changed, 12 insertions, 6 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 30631dc..dcb94b2 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2010-09-21 Andreas Schwab <schwab@redhat.com>
+
+ * sysdeps/pthread/pthread.h (pthread_cleanup_push)
+ [!__EXCEPTIONS]: Mangle local variable not_first_call.
+ (pthread_cleanup_push_defer_np): Likewise.
+
2010-09-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/allocalim.h (__libc_use_alloca): Expect blocks are
diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
index 44cf9f0..4c83665 100644
--- a/nptl/sysdeps/pthread/pthread.h
+++ b/nptl/sysdeps/pthread/pthread.h
@@ -650,9 +650,9 @@ __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
__pthread_unwind_buf_t __cancel_buf; \
void (*__cancel_routine) (void *) = (routine); \
void *__cancel_arg = (arg); \
- int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
- __cancel_buf.__cancel_jmp_buf, 0); \
- if (__builtin_expect (not_first_call, 0)) \
+ int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
+ __cancel_buf.__cancel_jmp_buf, 0); \
+ if (__builtin_expect (__not_first_call, 0)) \
{ \
__cancel_routine (__cancel_arg); \
__pthread_unwind_next (&__cancel_buf); \
@@ -685,9 +685,9 @@ extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
__pthread_unwind_buf_t __cancel_buf; \
void (*__cancel_routine) (void *) = (routine); \
void *__cancel_arg = (arg); \
- int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
- __cancel_buf.__cancel_jmp_buf, 0); \
- if (__builtin_expect (not_first_call, 0)) \
+ int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
+ __cancel_buf.__cancel_jmp_buf, 0); \
+ if (__builtin_expect (__not_first_call, 0)) \
{ \
__cancel_routine (__cancel_arg); \
__pthread_unwind_next (&__cancel_buf); \