On Thu, Jun 19, 2025 at 02:36:13PM +0200, Vincent Lefevre wrote:
> On 2025-06-19 12:54:52 +0200, Alejandro Colomar wrote:
> > +BUGS
> > +       Programmers would naturally expect that realloc(p, n) is consis‐
> > +       tent with free(p) and malloc(n).  This is not explicitly re‐
> > +       quired by POSIX.1‐2024, but all conforming implementations are
> > +       consistent with that.
> > +
> > +       The glibc implementation of realloc() is not consistent with
> > +       that, and as a consequence, it is dangerous to call
> > +       realloc(p, 0) in glibc.
> > +
> > +       A trivial workaround for glibc is calling it as
> > +       realloc(p, n?:1).
> 
> n?:1 is a GNU extension:
> 
> warning: ISO C forbids omitting the middle term of a ‘?:’ expression 
> [-Wpedantic]
> 
> with gcc -pedantic -std=c23, and such code should not be given in
> examples (as a workaround should still be valid for portable code).

Indeed. n?n:1 or n|!n or write it out in a non golf form.

Reply via email to