summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-12-07 16:50:11 +0000
committerUlrich Drepper <drepper@redhat.com>2007-12-07 16:50:11 +0000
commit26e21e7554ca5bbc719d5b018e26d5eb621c9e2e (patch)
treecba97f6eef732d9fbacf1cc5205f8e3eeeb8c1f1 /nptl
parentc9d65f0fbdf83d13e85a82d0b7b564d343a3c64b (diff)
downloadglibc-26e21e7554ca5bbc719d5b018e26d5eb621c9e2e.tar.gz
glibc-26e21e7554ca5bbc719d5b018e26d5eb621c9e2e.tar.xz
glibc-26e21e7554ca5bbc719d5b018e26d5eb621c9e2e.zip
[BZ #5441, BZ #5452, BZ #5454]
2007-12-07  Ulrich Drepper  <drepper@redhat.com>
	[BZ #5441]
	* stdio-common/vfscanf.c (_IO_vfwscanf): Don't free ptrs_to_free
	structure, it's allocated with alloca.
	* stdio-common/Makefile (tests): Add bug21.
	* stdio-common/bug21.c: New file.

2007-12-06  Aurelien Jarno  <aurelien@aurel32.net>

	[BZ #5452]
	* sysdeps/unix/sysv/linux/bits/sched.h: Use __extension__
	  keyword for gcc's braced-groups.

2007-12-07  Ulrich Drepper  <drepper@redhat.com>

	[BZ #5454]
	* inet/ether_line.c: Strip hostname of whitespaces.
	* inet/Makefile (tests): Add tst-ether_line.
	* inet/tst-ether_line.c: New file.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog7
-rw-r--r--nptl/sysdeps/pthread/pthread.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 05d95eb3b4..c882028750 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-07  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ #5455]
+	* sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
+	Allow label before pthread_cleanup_pop.
+	(pthread_cleanup_pop_restore_np): Likewise.
+
 2007-12-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
 	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
index 59126fcf52..f3ab0ae711 100644
--- a/nptl/sysdeps/pthread/pthread.h
+++ b/nptl/sysdeps/pthread/pthread.h
@@ -655,6 +655,7 @@ extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
 /* Remove a cleanup handler installed by the matching pthread_cleanup_push.
    If EXECUTE is non-zero, the handler function is called. */
 # define pthread_cleanup_pop(execute) \
+      do; while (0); /* Empty to allow label before pthread_cleanup_pop.  */  \
     } while (0);							      \
     __pthread_unregister_cancel (&__cancel_buf);			      \
     if (execute)							      \
@@ -690,6 +691,7 @@ extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
    restores the cancellation type that was in effect when the matching
    pthread_cleanup_push_defer was called.  */
 #  define pthread_cleanup_pop_restore_np(execute) \
+      do; while (0); /* Empty to allow label before pthread_cleanup_pop.  */  \
     } while (0);							      \
     __pthread_unregister_cancel_restore (&__cancel_buf);		      \
     if (execute)							      \