diff --git a/src/core.c b/src/core.c index 74ec3854..10e874aa 100644 --- a/src/core.c +++ b/src/core.c @@ -5256,6 +5256,9 @@ static __inline void meta_troika_unpack(meta_troika_t *troika, troika->recent = (packed >> 2) & 3; troika->prefer_steady = (packed >> 4) & 3; troika->tail_and_flags = packed & 0xC3; +#if MDBX_WORDBITS > 32 /* Workaround for false-positives from Valgrind */ + troika->unused_pad = 0; +#endif } static const uint8_t troika_fsm_map[2 * 2 * 2 * 3 * 3 * 3] = { diff --git a/src/internals.h b/src/internals.h index 28282414..55b17b3b 100644 --- a/src/internals.h +++ b/src/internals.h @@ -976,6 +976,9 @@ typedef struct MDBX_dbx { typedef struct troika { uint8_t fsm, recent, prefer_steady, tail_and_flags; +#if MDBX_WORDBITS > 32 /* Workaround for false-positives from Valgrind */ + uint32_t unused_pad; +#endif #define TROIKA_HAVE_STEADY(troika) ((troika)->fsm & 7) #define TROIKA_STRICT_VALID(troika) ((troika)->tail_and_flags & 64) #define TROIKA_VALID(troika) ((troika)->tail_and_flags & 128)