doc: Fix up return type of __builtin_va_arg_pack_len [PR108560]

Message ID Y9OUvmVFcSU5Eaix@tucnak
State New
Headers
Series doc: Fix up return type of __builtin_va_arg_pack_len [PR108560] |

Commit Message

Jakub Jelinek Jan. 27, 2023, 9:09 a.m. UTC
  Hi!

__builtin_va_arg_pack_len as implemented returned int since its introduction
in 2007.  The initial documentation didn't mention any return type,
which changed in 2010 in r0-103077-gab940b73bfabe2cec4 during some
documentation formatting cleanups
https://gcc.gnu.org/legacy-ml/gcc-patches/2010-09/msg01632.html
I can understand that for formatting some type was needed there
but what exactly hasn't been really discussed.

So, I think we should change documentation to match the implementation,
rather than change implementation to match the documentation.
Most people don't use more than 2147483647 arguments to inline functions,
and on poor targets with 16-bit ints I bet even having more than 65535
arguments to inline functions would be highly unexpected.

Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

2023-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR other/108560
	* doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
	from size_t to int.


	Jakub
  

Comments

Richard Biener Jan. 27, 2023, 9:59 a.m. UTC | #1
On Fri, 27 Jan 2023, Jakub Jelinek wrote:

> Hi!
> 
> __builtin_va_arg_pack_len as implemented returned int since its introduction
> in 2007.  The initial documentation didn't mention any return type,
> which changed in 2010 in r0-103077-gab940b73bfabe2cec4 during some
> documentation formatting cleanups
> https://gcc.gnu.org/legacy-ml/gcc-patches/2010-09/msg01632.html
> I can understand that for formatting some type was needed there
> but what exactly hasn't been really discussed.
> 
> So, I think we should change documentation to match the implementation,
> rather than change implementation to match the documentation.
> Most people don't use more than 2147483647 arguments to inline functions,
> and on poor targets with 16-bit ints I bet even having more than 65535
> arguments to inline functions would be highly unexpected.

Agreed.

> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

OK.

> 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
> 
> 	PR other/108560
> 	* doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
> 	from size_t to int.
> 
> --- gcc/doc/extend.texi.jj	2023-01-24 11:10:13.218075138 +0100
> +++ gcc/doc/extend.texi	2023-01-26 17:13:47.428496682 +0100
> @@ -688,7 +688,7 @@ myprintf (FILE *f, const char *format, .
>  @end smallexample
>  @end deftypefn
>  
> -@deftypefn {Built-in Function} {size_t} __builtin_va_arg_pack_len ()
> +@deftypefn {Built-in Function} {int} __builtin_va_arg_pack_len ()
>  This built-in function returns the number of anonymous arguments of
>  an inline function.  It can be used only in inline functions that
>  are always inlined, never compiled as a separate function, such
> 
> 	Jakub
> 
>
  

Patch

--- gcc/doc/extend.texi.jj	2023-01-24 11:10:13.218075138 +0100
+++ gcc/doc/extend.texi	2023-01-26 17:13:47.428496682 +0100
@@ -688,7 +688,7 @@  myprintf (FILE *f, const char *format, .
 @end smallexample
 @end deftypefn
 
-@deftypefn {Built-in Function} {size_t} __builtin_va_arg_pack_len ()
+@deftypefn {Built-in Function} {int} __builtin_va_arg_pack_len ()
 This built-in function returns the number of anonymous arguments of
 an inline function.  It can be used only in inline functions that
 are always inlined, never compiled as a separate function, such