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 <ja...@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 > > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman; HRB 36809 (AG Nuernberg)