# HG changeset patch # User Patric Stout # Date 2023-09-08 10:11:37 # Node ID 7c06e9e1a86b669f5f02fda26d2a9488710ac7dd # Parent dc15a02a4e81a03ba4f71ba9e8c81cde3e7bba77 Fix: asserts unintentially being partially disabled in release-builds (#11268) The nlohmann-json header file includes assert.h, which rudely resets the assert macro to what that header thinks is right. As we set the assert macro to be active with release builds when WITH_ASSERT is active, this means that every file including nlohmann-json has their asserts disabled (for release-builds) but files that don't do no. Let's avoid this issue, by telling nlohmann to not include assert.h. diff --git a/src/stdafx.h b/src/stdafx.h --- a/src/stdafx.h +++ b/src/stdafx.h @@ -394,6 +394,10 @@ void NORETURN AssertFailedError(int line # define assert(expression) if (unlikely(!(expression))) AssertFailedError(__LINE__, __FILE__, #expression); #endif +/* Define JSON_ASSERT, which is used by nlohmann-json. Otherwise the header-file + * will re-include assert.h, and reset the assert macro. */ +#define JSON_ASSERT(x) assert(x) + #if defined(MAX_PATH) /* It's already defined, no need to override */ #elif defined(PATH_MAX) && PATH_MAX > 0