Added log_assert() api
authorClifford Wolf <clifford@clifford.at>
Fri, 24 May 2013 12:38:36 +0000 (14:38 +0200)
committerClifford Wolf <clifford@clifford.at>
Fri, 24 May 2013 12:38:36 +0000 (14:38 +0200)
frontends/ast/ast.cc
kernel/celltypes.h
kernel/log.h

index 2c552ea22b3d6ed999d341353013a87cd6980d87..f4231395960733e6208438d7f5495c2c5b44c179 100644 (file)
@@ -140,8 +140,7 @@ std::string AST::type2str(AstNodeType type)
        X(AST_EDGE)
 #undef X
        default:
-               assert(!"Missing enum to string def in AST::type2str().");
-               abort();
+               log_abort();
        }
 }
 
index bf5ef4b3861257954a4988eddc1ece0122947c8b..cc84251c3b3a573d2b89b49329cd87d92a1b8527 100644 (file)
@@ -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)
index 6d19003461c895f72666c9ebd820091231c7cff8..a1b129aa19317f2efa376618ef3b5d1d5f12276f 100644 (file)
@@ -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