aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/assert.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/assert.h')
-rw-r--r--src/utils/assert.h70
1 files changed, 32 insertions, 38 deletions
diff --git a/src/utils/assert.h b/src/utils/assert.h
index d68f683a6..88d514b43 100644
--- a/src/utils/assert.h
+++ b/src/utils/assert.h
@@ -10,59 +10,53 @@
namespace Botan {
+/**
+* Called when an assertion fails
+*/
void assertion_failure(const char* expr_str,
- const char* msg,
+ const char* assertion_made,
const char* func,
const char* file,
int line);
-#define BOTAN_ASSERT(expr, msg) \
+/**
+* Make an assertion
+*/
+#define BOTAN_ASSERT(expr, assertion_made) \
do { \
if(!(expr)) \
Botan::assertion_failure(#expr, \
- msg, \
- BOTAN_ASSERT_FUNCTION, \
+ assertion_made, \
+ __func__, \
__FILE__, \
__LINE__); \
} while(0)
-#define BOTAN_ASSERT_EQUAL(value1, value2, msg) \
- do { \
- if(value1 != value2) \
- Botan::assertion_failure(#value1 " == " #value2, \
- msg, \
- BOTAN_ASSERT_FUNCTION, \
- __FILE__, \
- __LINE__); \
- } while(0)
-
-#define BOTAN_ASSERT_NONNULL(ptr) \
- do { \
- if(static_cast<bool>(ptr) == false) \
- Botan::assertion_failure(#ptr " is not null", \
- "", \
- BOTAN_ASSERT_FUNCTION, \
- __FILE__, \
- __LINE__); \
+/**
+* Assert that value1 == value2
+*/
+#define BOTAN_ASSERT_EQUAL(value1, value2, assertion_made) \
+ do { \
+ if(value1 != value2) \
+ Botan::assertion_failure(#value1 " == " #value2, \
+ assertion_made, \
+ __func__, \
+ __FILE__, \
+ __LINE__); \
} while(0)
-/*
-* Unfortunately getting the function name from the preprocessor
-* isn't standard in C++98 (C++0x uses C99's __func__)
+/**
+* Assert that a pointer is not null
*/
-#if defined(BOTAN_BUILD_COMPILER_IS_GCC) || \
- defined(BOTAN_BUILD_COMPILER_IS_CLANG) || \
- defined(BOTAN_BUILD_COMPILER_IS_INTEL)
-
- #define BOTAN_ASSERT_FUNCTION __PRETTY_FUNCTION__
-
-#elif defined(BOTAN_BUILD_COMPILER_IS_MSVC)
-
- #define BOTAN_ASSERT_FUNCTION __FUNCTION__
-
-#else
- #define BOTAN_ASSERT_FUNCTION ((const char*)0)
-#endif
+#define BOTAN_ASSERT_NONNULL(ptr) \
+ do { \
+ if(static_cast<bool>(ptr) == false) \
+ Botan::assertion_failure(#ptr " is not null", \
+ "", \
+ __func__, \
+ __FILE__, \
+ __LINE__); \
+ } while(0)
}