mdbx: fix assertion to avoid false-positive UB detection by CLANG/LLVM.

Assume this resolve https://github.com/erthink/libmdbx/issues/153

Change-Id: I02ceba1063a338b6dedf17629b51b3466358b0b8
This commit is contained in:
Leonid Yuriev 2021-01-21 00:15:10 +03:00
parent afe93137fc
commit d26ae6875b
2 changed files with 4 additions and 3 deletions

View File

@ -4701,7 +4701,8 @@ static __inline void mdbx_meta_update_end(const MDBX_env *env, MDBX_meta *meta,
static __inline void mdbx_meta_set_txnid(const MDBX_env *env, MDBX_meta *meta,
txnid_t txnid) {
mdbx_assert(env, meta < METAPAGE(env, 0) || meta > METAPAGE_END(env));
mdbx_assert(env, !env->me_map || meta < METAPAGE(env, 0) ||
meta >= METAPAGE_END(env));
(void)env;
/* update inconsistent since this function used ONLY for filling meta-image
* for writing, but not the actual meta-page */

View File

@ -410,8 +410,8 @@ void __hot maker::mk_continue(const serial_t serial, const essentials &params,
assert(out.value.iov_len <= params.maxlen);
assert(out.value.iov_len >= length(serial));
assert(out.value.iov_base >= out.bytes);
assert((uint8_t *)out.value.iov_base + out.value.iov_len <=
out.bytes + out.limit);
assert((char *)out.value.iov_base + out.value.iov_len <=
(char *)&out.bytes + out.limit);
}
void log_pair(logging::loglevel level, const char *prefix, const buffer &key,