From f5300d28bfa18485cfe7aca15eb5e8c193376ba0 Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Thu, 15 Dec 2022 11:45:17 -0500 Subject: [PATCH] doc: Fix documentation for __builtin_dynamic_object_size __builtin_dynamic_object_size is missing from the full list of builtins, so add it. Also mention it alongside __builtin_object_size in the passes description. gcc/ChangeLog: * doc/extend.texi (__builtin_dynamic_object_size): Document builtin. * doc/passes.texi (Optimize calls to @code{__builtin_object_size}): Also mention __builtin_dynamic_object_size. Signed-off-by: Siddhesh Poyarekar --- gcc/doc/extend.texi | 10 ++++++++-- gcc/doc/passes.texi | 15 +++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index d3812fa..608ff54 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -14291,8 +14291,14 @@ and GCC does not issue a warning. @end deftypefn @deftypefn {Built-in Function}{size_t} __builtin_object_size (const void * @var{ptr}, int @var{type}) -Returns the size of an object pointed to by @var{ptr}. @xref{Object Size -Checking}, for a detailed description of the function. +Returns a constant size estimate of an object pointed to by @var{ptr}. +@xref{Object Size Checking}, for a detailed description of the function. +@end deftypefn + +@deftypefn {Built-in Function}{size_t} __builtin_dynamic_object_size (const void * @var{ptr}, int @var{type}) +Similar to @code{__builtin_object_size} except that the return value +need not be a constant. @xref{Object Size Checking}, for a detailed +description of the function. @end deftypefn @deftypefn {Built-in Function} double __builtin_huge_val (void) diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index 9e8b4f5..a248c5d 100644 --- a/gcc/doc/passes.texi +++ b/gcc/doc/passes.texi @@ -843,12 +843,15 @@ foo()}, this pass tries to change the call so that the address of pass is located in @code{tree-nrv.cc} and is described by @code{pass_return_slot}. -@item Optimize calls to @code{__builtin_object_size} - -This is a propagation pass similar to CCP that tries to remove calls -to @code{__builtin_object_size} when the size of the object can be -computed at compile-time. This pass is located in -@file{tree-object-size.cc} and is described by +@item Optimize calls to @code{__builtin_object_size} or +@code{__builtin_dynamic_object_size} + +This is a propagation pass similar to CCP that tries to remove calls to +@code{__builtin_object_size} when the upper or lower bound for the size +of the object can be computed at compile-time. It also tries to replace +calls to @code{__builtin_dynamic_object_size} with an expression that +evaluates the upper or lower bound for the size of the object. This +pass is located in @file{tree-object-size.cc} and is described by @code{pass_object_sizes}. @item Loop invariant motion -- 2.7.4