pg_atomic_init_u64 (indirectly) uses compare/exchange to guarantee
atomic writes on platforms where compare/exchange is available, but
64bit writes aren't atomic (yes, those exist). That leads to a
harmless read of the initial value of variable.
fun:IsBinaryCoercible
}
+
+# Atomic writes to 64bit atomic vars uses compare/exchange to
+# guarantee atomic writes of 64bit variables. pg_atomic_write is used
+# during initialization of the atomic variable, hat leads to an
+# initial read of the old, undefined, memory value. But that's just to
+# make sure the swap works correctly.
+{
+ uninitialized_atomic_init_u64
+ Memcheck:Cond
+ fun:pg_atomic_exchange_u64_impl
+ fun:pg_atomic_write_u64_impl
+ fun:pg_atomic_init_u64_impl
+}