From: Andres Freund Date: Fri, 14 Nov 2014 15:58:00 +0000 (+0100) Subject: Add valgrind suppression for pg_atomic_init_u64. X-Git-Tag: REL9_5_ALPHA1~1215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c878edc1df9d4d9ad7ed4a7e1c34c0bf0f622b9;p=postgresql Add valgrind suppression for pg_atomic_init_u64. 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. --- diff --git a/src/tools/valgrind.supp b/src/tools/valgrind.supp index 4721c0a6fb..0df95eabf1 100644 --- a/src/tools/valgrind.supp +++ b/src/tools/valgrind.supp @@ -104,3 +104,16 @@ 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 +}