]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
include/assert: define ceph_assert[f]_always 9969/head
authorSage Weil <sage@redhat.com>
Mon, 27 Jun 2016 18:24:49 +0000 (11:24 -0700)
committerSage Weil <sage@redhat.com>
Tue, 28 Jun 2016 20:13:46 +0000 (16:13 -0400)
These variants we promise never to compile out based on NDEBUG.

Signed-off-by: Sage Weil <sage@redhat.com>
src/include/assert.h

index c52ccea4ea33d2fde30b7849a7ea1e9adc63e163..481f8bacfb3eeddae8661949096f6b96099ee021 100644 (file)
@@ -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__))