From: Sage Weil Date: Mon, 27 Jun 2016 18:24:49 +0000 (-0700) Subject: include/assert: define ceph_assert[f]_always X-Git-Tag: ses5-milestone5~516^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F9969%2Fhead;p=ceph.git include/assert: define ceph_assert[f]_always These variants we promise never to compile out based on NDEBUG. Signed-off-by: Sage Weil --- diff --git a/src/include/assert.h b/src/include/assert.h index c52ccea4ea33..481f8bacfb3e 100644 --- a/src/include/assert.h +++ b/src/include/assert.h @@ -129,6 +129,13 @@ using namespace ceph; ? __CEPH_ASSERT_VOID_CAST (0) \ : __ceph_assert_fail (__STRING(expr), __FILE__, __LINE__, __CEPH_ASSERT_FUNCTION)) +// this variant will *never* get compiled out to NDEBUG in the future. +// (ceph_assert currently doesn't either, but in the future it might.) +#define ceph_assert_always(expr) \ + ((expr) \ + ? __CEPH_ASSERT_VOID_CAST (0) \ + : __ceph_assert_fail (__STRING(expr), __FILE__, __LINE__, __CEPH_ASSERT_FUNCTION)) + // Named by analogy with printf. Along with an expression, takes a format // string and parameters which are printed if the assertion fails. #define assertf(expr, ...) \ @@ -139,3 +146,10 @@ using namespace ceph; ((expr) \ ? __CEPH_ASSERT_VOID_CAST (0) \ : __ceph_assertf_fail (__STRING(expr), __FILE__, __LINE__, __CEPH_ASSERT_FUNCTION, __VA_ARGS__)) + +// this variant will *never* get compiled out to NDEBUG in the future. +// (ceph_assertf currently doesn't either, but in the future it might.) +#define ceph_assertf_always(expr, ...) \ + ((expr) \ + ? __CEPH_ASSERT_VOID_CAST (0) \ + : __ceph_assertf_fail (__STRING(expr), __FILE__, __LINE__, __CEPH_ASSERT_FUNCTION, __VA_ARGS__))