summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e_os.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/e_os.h b/e_os.h
index 914a2bf4ac..49a0c3ed18 100644
--- a/e_os.h
+++ b/e_os.h
@@ -13,6 +13,7 @@
# include <openssl/opensslconf.h>
# include <openssl/e_os2.h>
+# include <openssl/crypto.h>
/*
* <openssl/e_os2.h> contains what we can justify to make visible to the
* outside; this file e_os.h is not part of the exported interface.
@@ -544,6 +545,23 @@ struct servent *getservbyname(const char *name, const char *proto);
# define CRYPTO_memcmp memcmp
#endif
+#ifdef NDEBUG
+# define ossl_assert(x) (int)(x)
+#else
+__owur static ossl_inline int ossl_assert_int(int expr, const char *exprstr,
+ const char *file, int line)
+{
+ if (!expr)
+ OPENSSL_die(exprstr, file, line);
+
+ return expr;
+}
+
+# define ossl_assert(x) ossl_assert_int((int)(x), "Assertion failed: "#x, \
+ __FILE__, __LINE__)
+
+#endif
+
#ifdef __cplusplus
}
#endif