This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]



On 27/06/2018 13:42, Florian Weimer wrote:
> The unused macro definition in posix/glob.c comes from gnulib and will
> have to be removed there.

Since you are working on BZ#18023, maybe check the glob refactor to remove alloc
on glob I have posted sometime ago?

> 
> 2018-06-27  Florian Weimer  <fweimer@redhat.com>
> 
> 	[BZ #18023]
>         * include/alloca.h (stackinfo_alloca_round, extend_alloca)
>         (extend_alloca_account): Remove.
> 	* manual/stdio.texi (Variable Arguments Output): Update comment.

LGTM, thanks.

> 
> diff --git a/include/alloca.h b/include/alloca.h
> index fd90664f0a..c0b8395443 100644
> --- a/include/alloca.h
> +++ b/include/alloca.h
> @@ -23,57 +23,17 @@ libc_hidden_proto (__libc_alloca_cutoff)
>  
>  #include <allocalim.h>
>  
> -#ifndef stackinfo_alloca_round
> -# define stackinfo_alloca_round(l) (((l) + 15) & -16)
> -#endif
> -
> -#if _STACK_GROWS_DOWN
> -# define extend_alloca(buf, len, newlen) \
> -  (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen);      \
> -		      char *__newbuf = __alloca (__newlen);		      \
> -		      if (__newbuf + __newlen == (char *) (buf))	      \
> -			len += __newlen;				      \
> -		      else						      \
> -			len = __newlen;					      \
> -		      __newbuf; })
> -#elif _STACK_GROWS_UP
> -# define extend_alloca(buf, len, newlen) \
> -  (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen);      \
> -		      char *__newbuf = __alloca (__newlen);		      \
> -		      char *__buf = (char *) (buf);			      \
> -		      if (__buf + len == __newbuf)			      \
> -			{						      \
> -			  len += __newlen;				      \
> -			  __newbuf = __buf;				      \
> -			}						      \
> -		      else						      \
> -			len = __newlen;					      \
> -		      __newbuf; })
> -#else
> -# define extend_alloca(buf, len, newlen) \
> -  __alloca (((len) = (newlen)))
> -#endif
> -
>  #if defined stackinfo_get_sp && defined stackinfo_sub_sp
>  # define alloca_account(size, avar) \
>    ({ void *old__ = stackinfo_get_sp ();					      \
>       void *m__ = __alloca (size);					      \
>       avar += stackinfo_sub_sp (old__);					      \
>       m__; })
> -# define extend_alloca_account(buf, len, newlen, avar) \
> -  ({ void *old__ = stackinfo_get_sp ();					      \
> -     void *m__ = extend_alloca (buf, len, newlen);			      \
> -     avar += stackinfo_sub_sp (old__);					      \
> -     m__; })
>  #else
>  # define alloca_account(size, avar) \
>    ({ size_t s__ = (size);						      \
>       avar += s__;							      \
>       __alloca (s__); })
> -# define extend_alloca_account(buf, len, newlen, avar) \
> -  ({ size_t s__ = (newlen);						      \
> -     avar += s__;							      \
> -     extend_alloca (buf, len, s__); })
>  #endif
>  
>  # endif /* !_ISOMAC */
> diff --git a/manual/stdio.texi b/manual/stdio.texi
> index 38be236991..379f003b3f 100644
> --- a/manual/stdio.texi
> +++ b/manual/stdio.texi
> @@ -2622,7 +2622,6 @@ pointer @var{ap}.
>  @c __libc_use_alloca
>  @c process_arg
>  @c process_string_arg
> -@c extend_alloca
>  @c __parse_one_spec(wc|mb)
>  @c *__printf_arginfo_table unguarded
>  @c __printf_va_arg_table-> unguarded
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]