diff --git a/src/include/lean/lean.h b/src/include/lean/lean.h index 51e8984b83..1ad7aac783 100644 --- a/src/include/lean/lean.h +++ b/src/include/lean/lean.h @@ -37,7 +37,15 @@ extern "C" { #if defined(__GNUC__) || defined(__clang__) #define LEAN_UNLIKELY(x) (__builtin_expect((x), 0)) #define LEAN_LIKELY(x) (__builtin_expect((x), 1)) + +#ifdef NDEBUG #define LEAN_ALWAYS_INLINE __attribute__((always_inline)) +#else +// We have observed stack frame increases from forced inlining overflowing the stack in debug builds, +// let's leave the decision to the compiler in that case +#define LEAN_ALWAYS_INLINE +#endif + #else #define LEAN_UNLIKELY(x) (x) #define LEAN_LIKELY(x) (x)