summaryrefslogtreecommitdiff
path: root/src/utils/checkutils.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-05-11 18:20:55 +0300
committerAndrei Karas <akaras@inbox.ru>2016-05-11 18:20:55 +0300
commitdb084a1b2fc7f73b38375c4e2ab5398c19a5d712 (patch)
tree3775d75326f0e9a2b62c7743f5054124ce6c4a14 /src/utils/checkutils.h
parentece98b5c7baefc8fe0326bdfea8de4fe14ed0bf2 (diff)
downloadmv-db084a1b2fc7f73b38375c4e2ab5398c19a5d712.tar.gz
mv-db084a1b2fc7f73b38375c4e2ab5398c19a5d712.tar.bz2
mv-db084a1b2fc7f73b38375c4e2ab5398c19a5d712.tar.xz
mv-db084a1b2fc7f73b38375c4e2ab5398c19a5d712.zip
Add new assert macro: reportAlways and failAlways
Diffstat (limited to 'src/utils/checkutils.h')
-rw-r--r--src/utils/checkutils.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/utils/checkutils.h b/src/utils/checkutils.h
index 23b1fc965..0210747c3 100644
--- a/src/utils/checkutils.h
+++ b/src/utils/checkutils.h
@@ -31,6 +31,10 @@
(val ? (reportStack(__FILE__, __LINE__, __func__, \
"Detected false value", #val), true) : false)
+#define reportAlwaysReal(val) \
+ reportStack(__FILE__, __LINE__, __func__, \
+ "Detected false value", val);
+
#define returnFalseVReal(val) \
if (!val) \
{ \
@@ -137,6 +141,13 @@
throw new std::exception(); \
}
+#define failAlways(val) \
+ { \
+ reportStack(__FILE__, __LINE__, __func__, \
+ "Detected false value", val); \
+ throw new std::exception(); \
+ }
+
void reportStack(const char *const file,
const unsigned int line,
const char *const func,
@@ -148,6 +159,8 @@ void reportStack(const char *const file,
#define reportFalseReal(val) (val)
#define reportTrueReal(val) (val)
+#define reportAlwaysReal(val) ;
+
#define returnFalseVReal(val) \
if (!val) \
return;
@@ -199,11 +212,14 @@ void reportStack(const char *const file,
if ((val) == nullptr) \
return ret;
+#define failAlways(val) ;
+
#endif // ENABLE_ASSERTS
#ifdef UNITTESTS
#define reportFalse(val) failFalse(val)
#define reportTrue(val) failTrue(val)
+#define reportAlways(val) failAlways(val)
#define returnFalseV(val) returnFailFalseV(val)
#define returnTrueV(val) returnFailTrueV(val)
#define returnFalse(ret, val) returnFailFalse(ret, val)
@@ -213,6 +229,7 @@ void reportStack(const char *const file,
#else // UNITTESTS
#define reportFalse(val) reportFalseReal(val)
#define reportTrue(val) reportTrueReal(val)
+#define reportAlways(val) reportAlwaysReal(val)
#define returnFalseV(val) returnFalseVReal(val)
#define returnTrueV(val) returnTrueVReal(val)
#define returnFalse(ret, val) returnFalseReal(ret, val)