diff options
author | Clifford Wolf <clifford@clifford.at> | 2014-10-15 20:36:32 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2014-10-15 20:36:32 +0200 |
commit | 82ed814fa1d0e8e58392210976069daa4faa3f4a (patch) | |
tree | 57588fa1bc292cb50997781b7e1171b59983a10a | |
parent | 2355ddf75d094e9272184ddd9ea916be49102b1b (diff) | |
download | yosys-82ed814fa1d0e8e58392210976069daa4faa3f4a.tar.gz yosys-82ed814fa1d0e8e58392210976069daa4faa3f4a.tar.bz2 yosys-82ed814fa1d0e8e58392210976069daa4faa3f4a.zip |
Replaced log_assert() do { ... } while (0) hack with a static inline function
-rw-r--r-- | kernel/log.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/log.h b/kernel/log.h index 904ba4759..421c50d3f 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -74,8 +74,12 @@ template<typename T> static inline const char *log_id(T *obj) { void log_cell(RTLIL::Cell *cell, std::string indent = ""); +static inline void log_assert_worker(bool cond, const char *expr, const char *file, int line) { + if (!cond) log_error("Assert `%s' failed in %s:%d.\n", expr, file, line); +} + #define log_abort() YOSYS_NAMESPACE_PREFIX log_error("Abort in %s:%d.\n", __FILE__, __LINE__) -#define log_assert(_assert_expr_) do { if (_assert_expr_) break; YOSYS_NAMESPACE_PREFIX log_error("Assert `%s' failed in %s:%d.\n", #_assert_expr_, __FILE__, __LINE__); } while (0) +#define log_assert(_assert_expr_) YOSYS_NAMESPACE_PREFIX log_assert_worker(_assert_expr_, #_assert_expr_, __FILE__, __LINE__) #define log_ping() YOSYS_NAMESPACE_PREFIX log("-- %s:%d %s --\n", __FILE__, __LINE__, __PRETTY_FUNCTION__) |