diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | malloc/malloc.h | 8 | ||||
-rw-r--r-- | stdlib/stdlib.h | 5 |
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 0529d065ea..c68a43d62e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2007-07-16 Jakub Jelinek <jakub@redhat.com> + [BZ #4792] + * stdlib/stdlib.h (realloc): Remove __attribute_malloc__. + * malloc/malloc.h (realloc): Likewise. + +2007-07-16 Jakub Jelinek <jakub@redhat.com> + * libio/iopopen.c (_IO_new_proc_open): Don't close child_std_end if one of proc_file_chain streams has that fileno. * stdio-common/Makefile (tests): Add tst-popen2. diff --git a/malloc/malloc.h b/malloc/malloc.h index 1340aa15bc..b6d7a8afaf 100644 --- a/malloc/malloc.h +++ b/malloc/malloc.h @@ -1,5 +1,6 @@ /* Prototypes and definition for malloc implementation. - Copyright (C) 1996,97,99,2000,2002-2004,2005 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2000, 2002-2004, 2005, 2007 + 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 @@ -54,8 +55,11 @@ extern void *calloc __MALLOC_P ((size_t __nmemb, size_t __size)) /* Re-allocate the previously allocated block in __ptr, making the new block SIZE bytes long. */ +/* __attribute_malloc__ is not used, because if realloc returns + the same pointer that was passed to it, aliasing needs to be allowed + between objects pointed by the old and new pointers. */ extern void *realloc __MALLOC_P ((void *__ptr, size_t __size)) - __attribute_malloc__ __attribute_warn_unused_result__; + __attribute_warn_unused_result__; /* Free a block allocated by `malloc', `realloc' or `calloc'. */ extern void free __MALLOC_P ((void *__ptr)); diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index aa5f514caa..dd78744539 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -597,8 +597,11 @@ __END_NAMESPACE_STD __BEGIN_NAMESPACE_STD /* Re-allocate the previously allocated block in PTR, making the new block SIZE bytes long. */ +/* __attribute_malloc__ is not used, because if realloc returns + the same pointer that was passed to it, aliasing needs to be allowed + between objects pointed by the old and new pointers. */ extern void *realloc (void *__ptr, size_t __size) - __THROW __attribute_malloc__ __attribute_warn_unused_result__; + __THROW __attribute_warn_unused_result__; /* Free a block allocated by `malloc', `realloc' or `calloc'. */ extern void free (void *__ptr) __THROW; __END_NAMESPACE_STD |