Package: libucommon-dev Version: 7.0.0-16 Severity: normal When included, ucommon/ucommon.h (via platform.h) unexpectedly defines NDEBUG without any warning, unless DEBUG has already been defined.
That led to a lot of head-scratching, trying to figure out why assert() was sometimes, but not always, not doing its job while working on a project that uses uCommon in some places. $ cat ucommon-ndebug.cpp #ifdef NDEBUG #warning "NDEBUG was already defined before including <ucommon/ucommon.h>" #endif #include <ucommon/ucommon.h> #ifdef NDEBUG #error "NDEBUG is defined after including <ucommon/ucommon.h>" #endif $ g++ -E ucommon-ndebug.cpp >/dev/null && echo OK ucommon-ndebug.cpp:8:2: error: #error "NDEBUG is defined after including <ucommon/ucommon.h>" #error "NDEBUG is defined after including <ucommon/ucommon.h>" ^~~~~ $ g++ -E -DDEBUG ucommon-ndebug.cpp >/dev/null && echo OK OK -- System Information: Debian Release: 10.2 APT prefers stable APT policy: (990, 'stable'), (500, 'stable-debug'), (500, 'testing'), (500, 'oldstable'), (100, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-11-amd64 (SMP w/3 CPU cores) Kernel taint flags: TAINT_OOT_MODULE Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), LANGUAGE=en_CA.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages libucommon-dev depends on: ii libgnutls28-dev 3.6.7-4 ii libucommon8 7.0.0-16 Versions of packages libucommon-dev recommends: ii pkg-config 0.29-6 Versions of packages libucommon-dev suggests: pn ucommon-doc <none>
#ifdef NDEBUG #warning "NDEBUG was already defined before including <ucommon/ucommon.h>" #endif #include <ucommon/ucommon.h> #ifdef NDEBUG #error "NDEBUG is defined after including <ucommon/ucommon.h>" #endif