aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/sys.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2013-08-27 17:23:09 +0200
committerSverker Eriksson <[email protected]>2013-09-30 17:34:10 +0200
commit156b011958a3b80e507039ddc916db039874ada1 (patch)
tree1bebd9b4ba948a5fa14d091275f9f334559f35d8 /erts/emulator/beam/sys.h
parente0ecc86e35475b434efa6cccba44074ca1040b7a (diff)
downloadotp-156b011958a3b80e507039ddc916db039874ada1.tar.gz
otp-156b011958a3b80e507039ddc916db039874ada1.tar.bz2
otp-156b011958a3b80e507039ddc916db039874ada1.zip
erts: Refactor the ASSERT macro
Introduce unconditional ERTS_ASSERT and use that for both ASSERT and ASSERT_EXPR.
Diffstat (limited to 'erts/emulator/beam/sys.h')
-rw-r--r--erts/emulator/beam/sys.h16
1 files changed, 6 insertions, 10 deletions
diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h
index 096394b878..a20106749c 100644
--- a/erts/emulator/beam/sys.h
+++ b/erts/emulator/beam/sys.h
@@ -149,20 +149,16 @@ typedef ERTS_SYS_FD_TYPE ErtsSysFdType;
# define ERTS_EXIT_AFTER_DUMP exit
#endif
-#ifdef DEBUG
-# define ASSERT(e) \
- if (e) { \
- ; \
- } else { \
- erl_assert_error(#e, __FILE__, __LINE__); \
- }
-# define ASSERT_EXPR(e) \
+#define ERTS_ASSERT(e) \
((void) ((e) ? 1 : (erl_assert_error(#e, __FILE__, __LINE__), 0)))
void erl_assert_error(char* expr, char* file, int line);
+
+#ifdef DEBUG
+# define ASSERT(e) ERTS_ASSERT(e)
#else
-# define ASSERT(e)
-# define ASSERT_EXPR(e) ((void) 1)
+# define ASSERT(e) ((void) 1)
#endif
+#define ASSERT_EXPR ASSERT
/*
* Microsoft C/C++: We certainly want to use stdarg.h and prototypes.