diff --git a/kernel/log.cc b/kernel/log.cc index cb4648f43..8f9ee2a13 100644 --- a/kernel/log.cc +++ b/kernel/log.cc @@ -402,16 +402,11 @@ void log_file_error(const string &filename, int lineno, logv_file_error(filename, lineno, format, ap); } -void log_experimental(const char *format, ...) +void log_experimental(const std::string &str) { - va_list ap; - va_start(ap, format); - string s = vstringf(format, ap); - va_end(ap); - - if (log_experimentals_ignored.count(s) == 0 && log_experimentals.count(s) == 0) { - log_warning("Feature '%s' is experimental.\n", s.c_str()); - log_experimentals.insert(s); + if (log_experimentals_ignored.count(str) == 0 && log_experimentals.count(str) == 0) { + log_warning("Feature '%s' is experimental.\n", str); + log_experimentals.insert(str); } } diff --git a/kernel/log.h b/kernel/log.h index 1ca60f7a5..ba2c1d9dc 100644 --- a/kernel/log.h +++ b/kernel/log.h @@ -121,9 +121,6 @@ extern int log_debug_suppressed; [[noreturn]] void logv_file_error(const string &filename, int lineno, const char *format, va_list ap); - -void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2)); - void set_verific_logging(void (*cb)(int msg_type, const char *message_id, const char* file_path, unsigned int left_line, unsigned int left_col, unsigned int right_line, unsigned int right_col, const char *msg)); extern void (*log_verific_callback)(int msg_type, const char *message_id, const char* file_path, unsigned int left_line, unsigned int left_col, unsigned int right_line, unsigned int right_col, const char *msg); @@ -170,6 +167,8 @@ inline void log_warning_noprefix(FmtString...> fmt, Args... a log_formatted_warning("", fmt.format(args...)); } +void log_experimental(const std::string &str); + static inline void log_suppressed() { if (log_debug_suppressed && !log_make_debug) { log("\n", log_debug_suppressed); diff --git a/kernel/register.cc b/kernel/register.cc index af1823b5b..38b8c8dc8 100644 --- a/kernel/register.cc +++ b/kernel/register.cc @@ -253,7 +253,7 @@ void Pass::call(RTLIL::Design *design, std::vector args) log_cmd_error("No such command: %s (type 'help' for a command overview)\n", args[0].c_str()); if (pass_register[args[0]]->experimental_flag) - log_experimental("%s", args[0].c_str()); + log_experimental(args[0]); size_t orig_sel_stack_pos = design->selection_stack.size(); auto state = pass_register[args[0]]->pre_execute();