atomic_decrement_if_positive() returns the old value of &mem, not the (sometimes undefined) value of __tmp.
Fixes the uClibc nptl/tst-sem3 test. Signed-off-by: Baruch Siach <bar...@tkos.co.il> --- libc/sysdeps/linux/xtensa/bits/atomic.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc/sysdeps/linux/xtensa/bits/atomic.h b/libc/sysdeps/linux/xtensa/bits/atomic.h index a31841a..b2be547 100644 --- a/libc/sysdeps/linux/xtensa/bits/atomic.h +++ b/libc/sysdeps/linux/xtensa/bits/atomic.h @@ -154,7 +154,7 @@ typedef uintmax_t uatomic_max_t; : "=&a" (__value), "=&a" (__tmp) \ : "a" (mem) \ : "memory" ); \ - __tmp; \ + __value; \ }) -- 1.8.4.rc3 _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc