From 62605cbfcb3d2f118c9f64ce049220b82928e6d4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 27 May 2008 06:04:07 +0000 Subject: [PATCH] Remove useless more "if" tests before "free". * include/inline-hashtab.h (htab_delete): Likewise. * libio/freopen.c (freopen): Likewise. * libio/freopen64.c (freopen64): Likewise. * locale/programs/ld-collate.c (collate_read): Likewise. * misc/fstab.c (libc_freeres_fn): Likewise. * posix/glob.c (globfree): Likewise. --- ChangeLog | 10 +++++ include/inline-hashtab.h | 3 +- libio/freopen.c | 5 +-- libio/freopen64.c | 5 +-- locale/programs/ld-collate.c | 12 ++---- misc/fstab.c | 6 +-- nptl/ChangeLog | 22 +++++++++++ .../linux/i386/i486/pthread_barrier_wait.S | 19 ++++++++++ .../linux/i386/i486/pthread_cond_broadcast.S | 37 ++++++++++++++++++- .../linux/i386/i486/pthread_cond_signal.S | 23 ++++++++++++ .../linux/i386/i486/pthread_rwlock_rdlock.S | 13 +++++++ .../i386/i486/pthread_rwlock_timedrdlock.S | 25 +++++++++++++ .../i386/i486/pthread_rwlock_timedwrlock.S | 25 +++++++++++++ .../linux/i386/i486/pthread_rwlock_unlock.S | 14 ++++++- .../linux/i386/i486/pthread_rwlock_wrlock.S | 13 +++++++ .../unix/sysv/linux/i386/i486/sem_post.S | 16 ++++++++ .../linux/x86_64/pthread_rwlock_timedrdlock.S | 21 +++++++++++ .../linux/x86_64/pthread_rwlock_timedwrlock.S | 21 +++++++++++ posix/glob.c | 5 +-- 19 files changed, 271 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0d22eaf8c7..3df9bfbe07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-05-26 Jim Meyering + + Remove useless more "if" tests before "free". + * include/inline-hashtab.h (htab_delete): Likewise. + * libio/freopen.c (freopen): Likewise. + * libio/freopen64.c (freopen64): Likewise. + * locale/programs/ld-collate.c (collate_read): Likewise. + * misc/fstab.c (libc_freeres_fn): Likewise. + * posix/glob.c (globfree): Likewise. + 2008-05-24 Ulrich Drepper * string/Makefile (strop-tests): Add memmem. diff --git a/include/inline-hashtab.h b/include/inline-hashtab.h index ad361cd1ed..c359161c54 100644 --- a/include/inline-hashtab.h +++ b/include/inline-hashtab.h @@ -142,8 +142,7 @@ htab_delete (struct hashtab *htab) int i; for (i = htab->size - 1; i >= 0; i--) - if (htab->entries[i]) - free (htab->entries[i]); + free (htab->entries[i]); if (htab->free) htab->free (htab->entries); diff --git a/libio/freopen.c b/libio/freopen.c index d94a5629f1..d80815f918 100644 --- a/libio/freopen.c +++ b/libio/freopen.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,95,96,97,98,2000,2001,2002,2003 +/* Copyright (C) 1993,95,96,97,98,2000,2001,2002,2003,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -80,8 +80,7 @@ freopen (filename, mode, fp) if (fd != -1) { __close (fd); - if (filename != NULL) - free ((char *) filename); + free ((char *) filename); } _IO_release_lock (fp); return result; diff --git a/libio/freopen64.c b/libio/freopen64.c index f8da78c46e..2dad6d7b4e 100644 --- a/libio/freopen64.c +++ b/libio/freopen64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993,1995,1996,1997,1998,2000,2001,2002, 2003 +/* Copyright (C) 1993,1995,1996,1997,1998,2000,2001,2002, 2003, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -64,8 +64,7 @@ freopen64 (filename, mode, fp) if (fd != -1) { __close (fd); - if (filename != NULL) - free ((char *) filename); + free ((char *) filename); } _IO_release_lock (fp); return result; diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c index 7af3b8aa92..bf50e77aab 100644 --- a/locale/programs/ld-collate.c +++ b/locale/programs/ld-collate.c @@ -2961,8 +2961,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result, else { col_elem_free: - if (symbol != NULL) - free ((char *) symbol); + free ((char *) symbol); free (arg->val.str.startmb); free (arg->val.str.startwc); } @@ -3142,8 +3141,7 @@ collate_read (struct linereader *ldfile, struct localedef_t *result, arg = lr_token (ldfile, charmap, result, repertoire, verbose); if (arg->tok != tok_bsymbol) { - if (newname != NULL) - free ((char *) newname); + free ((char *) newname); goto err_label; } @@ -3157,10 +3155,8 @@ collate_read (struct linereader *ldfile, struct localedef_t *result, "LC_COLLATE"); sym_equiv_free: - if (newname != NULL) - free ((char *) newname); - if (symname != NULL) - free ((char *) symname); + free ((char *) newname); + free ((char *) symname); break; } if (symname == NULL) diff --git a/misc/fstab.c b/misc/fstab.c index b434203a86..ab5581e9b7 100644 --- a/misc/fstab.c +++ b/misc/fstab.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1998, 2000, 2008 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -185,6 +186,5 @@ libc_freeres_fn (fstab_free) char *buffer; buffer = fstab_state.fs_buffer; - if (buffer != NULL) - free ((void *) buffer); + free ((void *) buffer); } diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 0ca98b8c3d..0f100e4349 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,25 @@ +2008-05-23 Paul Pluzhnikov + + * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add + cfi directives. + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise. + * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise. + +2008-05-22 Paul Pluzhnikov + + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add + cfi directives. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: + Likewise. + 2008-05-26 Ulrich Drepper * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants. diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S index 77d252de8f..040d7f8c33 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S @@ -27,7 +27,10 @@ .type pthread_barrier_wait,@function .align 16 pthread_barrier_wait: + cfi_startproc pushl %ebx + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) movl 8(%esp), %ebx @@ -45,6 +48,8 @@ pthread_barrier_wait: /* There are more threads to come. */ pushl %esi + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -12) #if CURR_EVENT == 0 movl (%ebx), %edx @@ -101,9 +106,16 @@ pthread_barrier_wait: 10: movl %esi, %eax /* != PTHREAD_BARRIER_SERIAL_THREAD */ popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) + /* The necessary number of threads arrived. */ 3: #if CURR_EVENT == 0 @@ -140,8 +152,12 @@ pthread_barrier_wait: 5: orl $-1, %eax /* == PTHREAD_BARRIER_SERIAL_THREAD */ popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) 1: movl PRIVATE(%ebx), %ecx leal MUTEX(%ebx), %edx xorl $LLL_SHARED, %ecx @@ -154,6 +170,8 @@ pthread_barrier_wait: call __lll_unlock_wake jmp 5b + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -12) 6: movl PRIVATE(%ebx), %ecx leal MUTEX(%ebx), %eax xorl $LLL_SHARED, %ecx @@ -165,4 +183,5 @@ pthread_barrier_wait: xorl $LLL_SHARED, %ecx call __lll_unlock_wake jmp 10b + cfi_endproc .size pthread_barrier_wait,.-pthread_barrier_wait diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S index 776c47f6cc..f46b4b874a 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S @@ -32,11 +32,19 @@ .type __pthread_cond_broadcast, @function .align 16 __pthread_cond_broadcast: - + cfi_startproc pushl %ebx + cfi_adjust_cfa_offset(4) pushl %esi + cfi_adjust_cfa_offset(4) pushl %edi + cfi_adjust_cfa_offset(4) pushl %ebp + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) + cfi_offset(%esi, -12) + cfi_offset(%edi, -16) + cfi_offset(%ebp, -20) movl 20(%esp), %ebx @@ -114,11 +122,24 @@ __pthread_cond_broadcast: 10: xorl %eax, %eax popl %ebp + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebp) popl %edi + cfi_adjust_cfa_offset(-4) + cfi_restore(%edi) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(16) + cfi_offset(%ebx, -8) + cfi_offset(%esi, -12) + cfi_offset(%edi, -16) + cfi_offset(%ebp, -20) .align 16 /* Unlock. */ 4: LOCK @@ -127,11 +148,24 @@ __pthread_cond_broadcast: 6: xorl %eax, %eax popl %ebp + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebp) popl %edi + cfi_adjust_cfa_offset(-4) + cfi_restore(%edi) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(16) + cfi_offset(%ebx, -8) + cfi_offset(%esi, -12) + cfi_offset(%edi, -16) + cfi_offset(%ebp, -20) /* Initial locking failed. */ 1: #if cond_lock == 0 @@ -199,6 +233,7 @@ __pthread_cond_broadcast: movl $SYS_futex, %eax ENTER_KERNEL jmp 10b + cfi_endproc .size __pthread_cond_broadcast, .-__pthread_cond_broadcast versioned_symbol (libpthread, __pthread_cond_broadcast, pthread_cond_broadcast, GLIBC_2_3_2) diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S index 36a18036c5..4909f49107 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S @@ -33,8 +33,13 @@ .align 16 __pthread_cond_signal: + cfi_startproc pushl %ebx + cfi_adjust_cfa_offset(4) pushl %edi + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) + cfi_offset(%edi, -12) movl 12(%esp), %edi @@ -69,7 +74,12 @@ __pthread_cond_signal: /* Wake up one thread. */ pushl %esi + cfi_adjust_cfa_offset(4) pushl %ebp + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -16) + cfi_offset(%ebp, -20) + #if FUTEX_PRIVATE_FLAG > 255 xorl %ecx, %ecx #endif @@ -91,7 +101,11 @@ __pthread_cond_signal: ENTER_KERNEL */ int $0x80 popl %ebp + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebp) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) /* For any kind of error, we try again with WAKE. The general test also covers running on old kernels. */ @@ -100,9 +114,17 @@ __pthread_cond_signal: 6: xorl %eax, %eax popl %edi + cfi_adjust_cfa_offset(-4) + cfi_restore(%edi) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(8) + cfi_offset(%ebx, -8) + cfi_offset(%edi, -12) + 7: /* %ecx should be either FUTEX_WAKE_OP or FUTEX_WAKE_OP|FUTEX_PRIVATE_FLAG from the previous syscall. */ xorl $(FUTEX_WAKE ^ FUTEX_WAKE_OP), %ecx @@ -152,6 +174,7 @@ __pthread_cond_signal: call __lll_lock_wait jmp 2b + cfi_endproc .size __pthread_cond_signal, .-__pthread_cond_signal versioned_symbol (libpthread, __pthread_cond_signal, pthread_cond_signal, GLIBC_2_3_2) diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S index 2ddeed072f..4e5f0c5b2a 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S @@ -30,8 +30,13 @@ .type __pthread_rwlock_rdlock,@function .align 16 __pthread_rwlock_rdlock: + cfi_startproc pushl %esi + cfi_adjust_cfa_offset(4) pushl %ebx + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -8) + cfi_offset(%ebx, -12) xorl %esi, %esi movl 12(%esp), %ebx @@ -113,9 +118,16 @@ __pthread_rwlock_rdlock: movl %edx, %eax popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) ret + cfi_adjust_cfa_offset(8) + cfi_offset(%esi, -8) + cfi_offset(%ebx, -12) 1: #if MUTEX == 0 movl %ebx, %edx @@ -171,6 +183,7 @@ __pthread_rwlock_rdlock: movzbl PSHARED(%ebx), %ecx call __lll_lock_wait jmp 13b + cfi_endproc .size __pthread_rwlock_rdlock,.-__pthread_rwlock_rdlock .globl pthread_rwlock_rdlock diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S index 89027284ec..2b84cd06c2 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S @@ -30,11 +30,21 @@ .type pthread_rwlock_timedrdlock,@function .align 16 pthread_rwlock_timedrdlock: + cfi_startproc pushl %esi + cfi_adjust_cfa_offset(4) pushl %edi + cfi_adjust_cfa_offset(4) pushl %ebx + cfi_adjust_cfa_offset(4) pushl %ebp + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -8) + cfi_offset(%edi, -12) + cfi_offset(%ebx, -16) + cfi_offset(%ebp, -20) subl $8, %esp + cfi_adjust_cfa_offset(8) movl 28(%esp), %ebp movl 32(%esp), %edi @@ -150,12 +160,26 @@ pthread_rwlock_timedrdlock: 7: movl %edx, %eax addl $8, %esp + cfi_adjust_cfa_offset(-8) popl %ebp + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebp) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) popl %edi + cfi_adjust_cfa_offset(-4) + cfi_restore(%edi) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) ret + cfi_adjust_cfa_offset(24) + cfi_offset(%esi, -8) + cfi_offset(%edi, -12) + cfi_offset(%ebx, -16) + cfi_offset(%ebp, -20) 1: #if MUTEX == 0 movl %ebp, %edx @@ -216,4 +240,5 @@ pthread_rwlock_timedrdlock: 19: movl $EINVAL, %edx jmp 9b + cfi_endproc .size pthread_rwlock_timedrdlock,.-pthread_rwlock_timedrdlock diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S index 0cf02e057e..91652467c4 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S @@ -30,11 +30,21 @@ .type pthread_rwlock_timedwrlock,@function .align 16 pthread_rwlock_timedwrlock: + cfi_startproc pushl %esi + cfi_adjust_cfa_offset(4) pushl %edi + cfi_adjust_cfa_offset(4) pushl %ebx + cfi_adjust_cfa_offset(4) pushl %ebp + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -8) + cfi_offset(%edi, -12) + cfi_offset(%ebx, -16) + cfi_offset(%ebp, -20) subl $8, %esp + cfi_adjust_cfa_offset(8) movl 28(%esp), %ebp movl 32(%esp), %edi @@ -148,12 +158,26 @@ pthread_rwlock_timedwrlock: 7: movl %edx, %eax addl $8, %esp + cfi_adjust_cfa_offset(-8) popl %ebp + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebp) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) popl %edi + cfi_adjust_cfa_offset(-4) + cfi_restore(%edi) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) ret + cfi_adjust_cfa_offset(24) + cfi_offset(%esi, -8) + cfi_offset(%edi, -12) + cfi_offset(%ebx, -16) + cfi_offset(%ebp, -20) 1: #if MUTEX == 0 movl %ebp, %edx @@ -209,4 +233,5 @@ pthread_rwlock_timedwrlock: 19: movl $EINVAL, %edx jmp 9b + cfi_endproc .size pthread_rwlock_timedwrlock,.-pthread_rwlock_timedwrlock diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S index bf9c33ea9f..aabb92960b 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S @@ -29,8 +29,13 @@ .type __pthread_rwlock_unlock,@function .align 16 __pthread_rwlock_unlock: + cfi_startproc pushl %ebx + cfi_adjust_cfa_offset(4) pushl %edi + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) + cfi_offset(%edi, -12) movl 12(%esp), %edi @@ -87,9 +92,16 @@ __pthread_rwlock_unlock: xorl %eax, %eax popl %edi + cfi_adjust_cfa_offset(-4) + cfi_restore(%edi) popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(8) + cfi_offset(%ebx, -8) + cfi_offset(%edi, -12) .align 16 6: LOCK #if MUTEX == 0 @@ -133,7 +145,7 @@ __pthread_rwlock_unlock: movzbl PSHARED(%edi), %ecx call __lll_unlock_wake jmp 8b - + cfi_endproc .size __pthread_rwlock_unlock,.-__pthread_rwlock_unlock .globl pthread_rwlock_unlock diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S index d13bb5132c..100736499b 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S @@ -30,8 +30,13 @@ .type __pthread_rwlock_wrlock,@function .align 16 __pthread_rwlock_wrlock: + cfi_startproc pushl %esi + cfi_adjust_cfa_offset(4) pushl %ebx + cfi_adjust_cfa_offset(4) + cfi_offset(%esi, -8) + cfi_offset(%ebx, -12) xorl %esi, %esi movl 12(%esp), %ebx @@ -111,9 +116,16 @@ __pthread_rwlock_wrlock: movl %edx, %eax popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) popl %esi + cfi_adjust_cfa_offset(-4) + cfi_restore(%esi) ret + cfi_adjust_cfa_offset(8) + cfi_offset(%esi, -8) + cfi_offset(%ebx, -12) 1: #if MUTEX == 0 movl %ebx, %edx @@ -162,6 +174,7 @@ __pthread_rwlock_wrlock: movzbl PSHARED(%ebx), %ecx call __lll_lock_wait jmp 13b + cfi_endproc .size __pthread_rwlock_wrlock,.-__pthread_rwlock_wrlock .globl pthread_rwlock_wrlock diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S index 2edcdde4f0..86992c877e 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S @@ -30,7 +30,10 @@ .type __new_sem_post,@function .align 16 __new_sem_post: + cfi_startproc pushl %ebx + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) movl 8(%esp), %ebx @@ -64,8 +67,12 @@ __new_sem_post: 2: xorl %eax, %eax popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) 1: #ifdef PIC call __i686.get_pc_thunk.bx @@ -116,14 +123,20 @@ __new_sem_post: orl $-1, %eax popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_endproc .size __new_sem_post,.-__new_sem_post versioned_symbol(libpthread, __new_sem_post, sem_post, GLIBC_2_1) #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1) .global __old_sem_post .type __old_sem_post,@function __old_sem_post: + cfi_startproc pushl %ebx + cfi_adjust_cfa_offset(4) + cfi_offset(%ebx, -8) movl 8(%esp), %ebx LOCK @@ -139,7 +152,10 @@ __old_sem_post: xorl %eax, %eax popl %ebx + cfi_adjust_cfa_offset(-4) + cfi_restore(%ebx) ret + cfi_endproc .size __old_sem_post,.-__old_sem_post compat_symbol(libpthread, __old_sem_post, sem_post, GLIBC_2_0) #endif diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S index 0fa2714426..366c96fc36 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S @@ -33,10 +33,19 @@ .type pthread_rwlock_timedrdlock,@function .align 16 pthread_rwlock_timedrdlock: + cfi_startproc pushq %r12 + cfi_adjust_cfa_offset(8) pushq %r13 + cfi_adjust_cfa_offset(8) pushq %r14 + cfi_adjust_cfa_offset(8) + cfi_offset(%r12, -16) + cfi_offset(%r13, -24) + cfi_offset(%r14, -32) + subq $16, %rsp + cfi_adjust_cfa_offset(16) movq %rdi, %r12 movq %rsi, %r13 @@ -155,11 +164,22 @@ pthread_rwlock_timedrdlock: 7: movq %rdx, %rax addq $16, %rsp + cfi_adjust_cfa_offset(-16) popq %r14 + cfi_adjust_cfa_offset(-8) + cfi_restore(%r14) popq %r13 + cfi_adjust_cfa_offset(-8) + cfi_restore(%r13) popq %r12 + cfi_adjust_cfa_offset(-8) + cfi_restore(%r12) retq + cfi_adjust_cfa_offset(40) + cfi_offset(%r12, -16) + cfi_offset(%r13, -24) + cfi_offset(%r14, -32) 1: movl PSHARED(%rdi), %esi #if MUTEX != 0 addq $MUTEX, %rdi @@ -214,4 +234,5 @@ pthread_rwlock_timedrdlock: 19: movl $EINVAL, %edx jmp 9b + cfi_endproc .size pthread_rwlock_timedrdlock,.-pthread_rwlock_timedrdlock diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S index 1e43933ca9..dde6b58836 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S @@ -33,10 +33,19 @@ .type pthread_rwlock_timedwrlock,@function .align 16 pthread_rwlock_timedwrlock: + cfi_startproc pushq %r12 + cfi_adjust_cfa_offset(8) pushq %r13 + cfi_adjust_cfa_offset(8) pushq %r14 + cfi_adjust_cfa_offset(8) + cfi_offset(%r12, -16) + cfi_offset(%r13, -24) + cfi_offset(%r14, -32) + subq $16, %rsp + cfi_adjust_cfa_offset(16) movq %rdi, %r12 movq %rsi, %r13 @@ -152,11 +161,22 @@ pthread_rwlock_timedwrlock: 7: movq %rdx, %rax addq $16, %rsp + cfi_adjust_cfa_offset(-16) popq %r14 + cfi_adjust_cfa_offset(-8) + cfi_restore(%r14) popq %r13 + cfi_adjust_cfa_offset(-8) + cfi_restore(%r13) popq %r12 + cfi_adjust_cfa_offset(-8) + cfi_restore(%r12) retq + cfi_adjust_cfa_offset(40) + cfi_offset(%r12, -16) + cfi_offset(%r13, -24) + cfi_offset(%r14, -32) 1: movl PSHARED(%rdi), %esi #if MUTEX != 0 addq $MUTEX, %rdi @@ -206,4 +226,5 @@ pthread_rwlock_timedwrlock: 19: movl $EINVAL, %edx jmp 9b + cfi_endproc .size pthread_rwlock_timedwrlock,.-pthread_rwlock_timedwrlock diff --git a/posix/glob.c b/posix/glob.c index b7d9617267..73081ece66 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007 +/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -1075,8 +1075,7 @@ globfree (pglob) { size_t i; for (i = 0; i < pglob->gl_pathc; ++i) - if (pglob->gl_pathv[pglob->gl_offs + i] != NULL) - free (pglob->gl_pathv[pglob->gl_offs + i]); + free (pglob->gl_pathv[pglob->gl_offs + i]); free (pglob->gl_pathv); pglob->gl_pathv = NULL; }