Message ID | 20180627164213.7A3E943994575@oldenburg.str.redhat.com |
---|---|
State | New |
Headers | show |
Series | Remove macros extend_alloca, extend_alloca_account [BZ #18023] | expand |
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 >
* Adhemerval Zanella: > 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? This was the series of patches with the growable strings abstraction, right? Eventually, I want to come back to it, yes.
On 27/06/2018 15:23, Florian Weimer wrote: > * Adhemerval Zanella: > >> 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? > > This was the series of patches with the growable strings abstraction, > right? > > Eventually, I want to come back to it, yes. > Yes, last patchset is this one https://sourceware.org/ml/libc-alpha/2018-02/msg00109.html
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