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 <siddhesh@gotplt.org>
This commit is contained in:
Siddhesh Poyarekar
2022-12-15 11:45:17 -05:00
parent 7283380a58
commit f5300d28bf
2 changed files with 16 additions and 7 deletions
+8 -2
View File
@@ -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)
+8 -5
View File
@@ -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}
@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 size of the object can be
computed at compile-time. This pass is located in
@file{tree-object-size.cc} and is described by
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