summaryrefslogtreecommitdiffstats
path: root/comm/third_party/botan/src/lib/utils/assert.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'comm/third_party/botan/src/lib/utils/assert.cpp')
-rw-r--r--comm/third_party/botan/src/lib/utils/assert.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/comm/third_party/botan/src/lib/utils/assert.cpp b/comm/third_party/botan/src/lib/utils/assert.cpp
new file mode 100644
index 0000000000..b251a469e9
--- /dev/null
+++ b/comm/third_party/botan/src/lib/utils/assert.cpp
@@ -0,0 +1,54 @@
+/*
+* Runtime assertion checking
+* (C) 2010,2012,2018 Jack Lloyd
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+
+#include <botan/exceptn.h>
+#include <sstream>
+
+namespace Botan {
+
+void throw_invalid_argument(const char* message,
+ const char* func,
+ const char* file)
+ {
+ std::ostringstream format;
+ format << message << " in " << func << ":" << file;
+ throw Invalid_Argument(format.str());
+ }
+
+void throw_invalid_state(const char* expr,
+ const char* func,
+ const char* file)
+ {
+ std::ostringstream format;
+ format << "Invalid state: " << expr << " was false in " << func << ":" << file;
+ throw Invalid_State(format.str());
+ }
+
+void assertion_failure(const char* expr_str,
+ const char* assertion_made,
+ const char* func,
+ const char* file,
+ int line)
+ {
+ std::ostringstream format;
+
+ format << "False assertion ";
+
+ if(assertion_made && assertion_made[0] != 0)
+ format << "'" << assertion_made << "' (expression " << expr_str << ") ";
+ else
+ format << expr_str << " ";
+
+ if(func)
+ format << "in " << func << " ";
+
+ format << "@" << file << ":" << line;
+
+ throw Internal_Error(format.str());
+ }
+
+}