-#define ASSERT_AND_RET(expr, string, ret) do { assert((expr) && string); if (!(expr)) return (ret); } while(0)
-#define ASSERT_AND_RET_DBG(expr, string, ret, blk) do { if (!(expr)) { { blk } assert(0 && string); return (ret); } } while(0)
+#define ASSERT_AND_RET(expr, string, ret) \
+do { \
+ bad_msg = #expr " && " string; \
+ if (opt_do_node_verification == NODE_VERIFICATION_ON) \
+ assert((expr) && string); \
+ if (!(expr)) { \
+ if (opt_do_node_verification == NODE_VERIFICATION_REPORT) \
+ fprintf(stderr, #expr " : " string "\n"); \
+ return (ret); \
+ } \
+} while(0)
+
+#define ASSERT_AND_RET_DBG(expr, string, ret, blk) \
+do { \
+ if (!(expr)) { \
+ bad_msg = #expr " && " string; \
+ if (opt_do_node_verification != NODE_VERIFICATION_ERROR_ONLY) { blk; } \
+ if (opt_do_node_verification == NODE_VERIFICATION_REPORT) \
+ fprintf(stderr, #expr " : " string "\n"); \
+ else if (opt_do_node_verification == NODE_VERIFICATION_ON) \
+ assert((expr) && string); \
+ return (ret); \
+ } \
+} while(0)
+