On Fri, Nov 30, 2012 at 8:38 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Tue, Nov 27, 2012 at 12:47:50PM +0400, Dmitry Vyukov wrote: >> Yes, you are right. >> I think I've done them atomically initially because of things like >> FUTEX_WAKE_OP. I will fix that. > > Any progress on that? > > BTW, the current > template<typename T> T func_nand(T v, T op) { > return ~v & op; > } > is wrong not just by not being atomic (similarly to others), but > furthermore because __sync_fetch_and_nand (and __atomic etc.) are > return ~(v & op); > instead (GCC < 4.4 did it wrongly as ~v & op; though).
Hi, No progress for now. It's in my todo list, but I am busy with other tasks. It should not block you on compiler side, and I think work most of the time, so I will fix in near future.