From ee526ea745a1bfce9524180e05857df14dfd1eae Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 23 May 2014 10:11:03 +0000 Subject: [PATCH] re PR other/56955 (documentation for attribute malloc contradicts itself) 2014-05-22 Paul Eggert PR other/56955 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc)) documentation; the old documentation didn't clearly state the constraints on the contents of the pointed-to storage. From-SVN: r210848 --- gcc/ChangeLog | 7 +++++++ gcc/doc/extend.texi | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bada3316941..aedf2d0a099 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-05-23 Paul Eggert + + PR other/56955 + * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc)) + documentation; the old documentation didn't clearly state the + constraints on the contents of the pointed-to storage. + 2014-05-23 Maxim Kuvyrkov Fix bootstrap error on ia64 diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 28eb8aefa0a..c54ed6785d6 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -3207,14 +3207,16 @@ efficient @code{jal} instruction. @item malloc @cindex @code{malloc} attribute -The @code{malloc} attribute is used to tell the compiler that a function -may be treated as if any non-@code{NULL} pointer it returns cannot -alias any other pointer valid when the function returns and that the memory -has undefined content. -This often improves optimization. -Standard functions with this property include @code{malloc} and -@code{calloc}. @code{realloc}-like functions do not have this -property as the memory pointed to does not have undefined content. +This tells the compiler that a function is @code{malloc}-like, i.e., +that the pointer @var{P} returned by the function cannot alias any +other pointer valid when the function returns, and moreover no +pointers to valid objects occur in any storage addressed by @var{P}. + +Using this attribute can improve optimization. Functions like +@code{malloc} and @code{calloc} have this property because they return +a pointer to uninitialized or zeroed-out storage. However, functions +like @code{realloc} do not have this property, as they can return a +pointer to storage containing pointers. @item mips16/nomips16 @cindex @code{mips16} attribute