This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Wed, 27 Jun 2018 14:08:10 -0300
- Subject: Re: [PATCH] Remove macros extend_alloca, extend_alloca_account [BZ #18023]
- References: <20180627164213.7A3E943994575@oldenburg.str.redhat.com>
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
>