bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: explicit_bzero and -std=c99


From: Bruno Haible
Subject: Re: explicit_bzero and -std=c99
Date: Sun, 27 Nov 2022 19:24:25 +0100

Paul Eggert wrote:
> >     2) Is there no other way to implement explicit_bzero without 'asm'?
> >     There is a another fallback code using volatile pointers, but I'm not
> >     sure it really has the same semantics.
> 
> That fallback should work, though it's a bit slower.

I'm afraid that the fallback code

  /* Invoke memset through a volatile function pointer.  This defeats compiler
     optimizations.  */
  void * (* const volatile volatile_memset) (void *, int, size_t) = memset;
  (void) volatile_memset (s, '\0', len);

will stop working, as compilers get "smarter".

The other code based on asm is not so likely to break, since it is documented
that "Using the "memory" clobber effectively forms a read/write memory barrier
for the compiler." [1]

Bruno

[1] https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Extended-Asm.html






reply via email to

[Prev in Thread] Current Thread [Next in Thread]