/* * Runtime assertion checking * (C) 2010,2012,2018 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ #include #include 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()); } }