aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-05-24 14:38:36 +0200
committerClifford Wolf <clifford@clifford.at>2013-05-24 14:38:36 +0200
commited0e2f7a6fe721175b80f6397c9abd5c0080033f (patch)
treea5a367e973094bdfa7398103824346163ad43e82 /kernel
parentccd2a93439098e333a2f41ae6d1ce3d92222f167 (diff)
downloadyosys-ed0e2f7a6fe721175b80f6397c9abd5c0080033f.tar.gz
yosys-ed0e2f7a6fe721175b80f6397c9abd5c0080033f.tar.bz2
yosys-ed0e2f7a6fe721175b80f6397c9abd5c0080033f.zip
Added log_assert() api
Diffstat (limited to 'kernel')
-rw-r--r--kernel/celltypes.h6
-rw-r--r--kernel/log.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/kernel/celltypes.h b/kernel/celltypes.h
index bf5ef4b38..cc84251c3 100644
--- a/kernel/celltypes.h
+++ b/kernel/celltypes.h
@@ -24,6 +24,9 @@
#include <string>
#include <stdlib.h>
+#include <kernel/rtlil.h>
+#include <kernel/log.h>
+
struct CellTypes
{
std::set<std::string> cell_types;
@@ -225,8 +228,7 @@ struct CellTypes
if (type == "$_XOR_")
return const_xor(arg1, arg2, false, false, 1);
- assert(!"Called CellType.eval() with unsupported cell type!");
- abort();
+ log_abort();
}
static RTLIL::Const eval(RTLIL::Cell *cell, const RTLIL::Const &arg1, const RTLIL::Const &arg2)
diff --git a/kernel/log.h b/kernel/log.h
index 6d1900346..a1b129aa1 100644
--- a/kernel/log.h
+++ b/kernel/log.h
@@ -49,5 +49,6 @@ void log_flush();
const char *log_signal(const RTLIL::SigSpec &sig, bool autoint = true);
#define log_abort() log_error("Abort in %s:%d.\n", __FILE__, __LINE__)
+#define log_assert(_assert_expr_) do { if (_assert_expr_) break; log_error("Assert `%s' failed in %s:%d.\n", #_assert_expr_, __FILE__, __LINE__); } while (0)
#endif