From 89f72bc3ae1ae6e61c5306b318b83ee30d527baf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Viktor=20S=C3=B6derqvist?= Date: Wed, 1 May 2024 03:26:59 +0200 Subject: [PATCH] Don't include config.h from serverassert.h (#404) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Serverassert is a drop-in replacement of assert. We use it even in code copied from other sources. To make these files usable outside of Valkey, it should be enough to replace the `serverassert.h` include with ``. Therefore, this file shouldn't have any dependencies to the rest of the valkey code. --------- Signed-off-by: Viktor Söderqvist --- src/serverassert.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/serverassert.h b/src/serverassert.h index d8c3dd425..08f97e574 100644 --- a/src/serverassert.h +++ b/src/serverassert.h @@ -38,7 +38,20 @@ #ifndef VALKEY_ASSERT_H #define VALKEY_ASSERT_H -#include "config.h" +/* This file shouldn't have any dependencies to any other Valkey code. */ + +#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) +#define valkey_unreachable __builtin_unreachable +#else +#include +#define valkey_unreachable abort +#endif + +#if __GNUC__ >= 3 +#define likely(x) __builtin_expect(!!(x), 1) +#else +#define likely(x) (x) +#endif #define assert(_e) (likely((_e))?(void)0 : (_serverAssert(#_e,__FILE__,__LINE__),valkey_unreachable())) #define panic(...) _serverPanic(__FILE__,__LINE__,__VA_ARGS__),valkey_unreachable()