summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--malloc/malloc.h8
-rw-r--r--stdlib/stdlib.h5
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