From 3d7f9ff377e406cdff55876e4f4f8e5a96448037 Mon Sep 17 00:00:00 2001 From: Tim Duesterhus Date: Mon, 25 Jan 2021 17:51:36 +0100 Subject: [PATCH] MINOR: abort() on my_unreachable() when DEBUG_USE_ABORT is set. Hopefully this helps static analysis tools detecting that the code after that call is unreachable. See GitHub Issue #1075. --- include/haproxy/compiler.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/haproxy/compiler.h b/include/haproxy/compiler.h index e5fae3e27..fba6dc358 100644 --- a/include/haproxy/compiler.h +++ b/include/haproxy/compiler.h @@ -66,11 +66,15 @@ * above which can more aggressively detect null dereferences. The builtin * below was introduced in gcc 4.5, and before it we didn't care. */ +#ifdef DEBUG_USE_ABORT +#define my_unreachable() abort() +#else #if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) #define my_unreachable() __builtin_unreachable() #else #define my_unreachable() #endif +#endif /* This macro may be used to block constant propagation that lets the compiler * detect a possible NULL dereference on a variable resulting from an explicit