From: <sv...@op...> - 2024-10-21 16:38:51
|
Author: manx Date: Mon Oct 21 18:38:39 2024 New Revision: 21905 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21905 Log: [Imp] mpt/base/namespace.hpp: Encode NDEBUG macro into inline namespace to guard against ODR violations. Modified: trunk/OpenMPT/src/mpt/base/namespace.hpp Modified: trunk/OpenMPT/src/mpt/base/namespace.hpp ============================================================================== --- trunk/OpenMPT/src/mpt/base/namespace.hpp Mon Oct 21 14:47:54 2024 (r21904) +++ trunk/OpenMPT/src/mpt/base/namespace.hpp Mon Oct 21 18:38:39 2024 (r21905) @@ -62,10 +62,16 @@ #define MPT_VERSION_ABI_LIBC _ #endif -#define MPT_BUILD_ABI_NAMESPACE_IMPL(a, b) ABI_##a##_##b -#define MPT_BUILD_ABI_NAMESPACE(a, b) MPT_BUILD_ABI_NAMESPACE_IMPL(a, b) +#ifdef NDEBUG +#define MPT_VERSION_ABI_LIBC_DEBUG _ +#else +#define MPT_VERSION_ABI_LIBC_DEBUG D +#endif + +#define MPT_BUILD_ABI_NAMESPACE_IMPL(a, b, c) ABI_##a##_##b +#define MPT_BUILD_ABI_NAMESPACE(a, b, c) MPT_BUILD_ABI_NAMESPACE_IMPL(a, b, c) -#define MPT_ABI_NAMESPACE MPT_BUILD_ABI_NAMESPACE(MPT_VERSION_ABI_OS, MPT_VERSION_ABI_LIBC) +#define MPT_ABI_NAMESPACE MPT_BUILD_ABI_NAMESPACE(MPT_VERSION_ABI_OS, MPT_VERSION_ABI_LIBC, MPT_VERSION_ABI_LIBC_DEBUG) #if !defined(MPT_PROJECT_NAMESPACE) MPT_WARNING("Please #define MPT_PROJECT_NAMESPACE or #define MPT_INLINE_NS in build configuration.") |