diff --git a/kernel/log.cc b/kernel/log.cc index 1e95ea5c5..6bab033de 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -415,6 +415,11 @@ void log_assert_failure(const char *expr, const char *file, int line) log_error("Assert `%s' failed in %s:%d.\n", expr, file, line); } +void log_abort_internal(const char *file, int line) +{ + log_error("Abort in %s:%d.\n", file, line); +} + void log_cmd_error(const char *format, ...) { va_list ap; diff --git a/kernel/log.h b/kernel/log.h index 40e1f02ff..653a73ba3 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -263,7 +263,9 @@ static inline void log_assert_worker(bool cond, const char *expr, const char *fi # define log_assert(_assert_expr_) do { if (0) { (void)(_assert_expr_); } } while(0) #endif -#define log_abort() YOSYS_NAMESPACE_PREFIX log_error("Abort in %s:%d.\n", __FILE__, __LINE__) +[[noreturn]] +void log_abort_internal(const char *file, int line); +#define log_abort() YOSYS_NAMESPACE_PREFIX log_abort_internal(__FILE__, __LINE__) #define log_ping() YOSYS_NAMESPACE_PREFIX log("-- %s:%d %s --\n", __FILE__, __LINE__, __PRETTY_FUNCTION__)