mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-03 18:00:24 +00:00
Make log_header()
use variadic templates.
This commit is contained in:
parent
2e28feed94
commit
b4fcfc3a33
3 changed files with 10 additions and 12 deletions
|
@ -216,7 +216,7 @@ void log_formatted_string(std::string_view format, std::string str)
|
||||||
logv_string(format, std::move(str));
|
logv_string(format, std::move(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void logv_header(RTLIL::Design *design, const char *format, va_list ap)
|
void log_formatted_header(RTLIL::Design *design, std::string_view format, std::string str)
|
||||||
{
|
{
|
||||||
bool pop_errfile = false;
|
bool pop_errfile = false;
|
||||||
|
|
||||||
|
@ -235,7 +235,7 @@ static void logv_header(RTLIL::Design *design, const char *format, va_list ap)
|
||||||
header_id += stringf("%s%d", header_id.empty() ? "" : ".", c);
|
header_id += stringf("%s%d", header_id.empty() ? "" : ".", c);
|
||||||
|
|
||||||
log("%s. ", header_id.c_str());
|
log("%s. ", header_id.c_str());
|
||||||
logv(format, ap);
|
log_formatted_string(format, std::move(str));
|
||||||
log_flush();
|
log_flush();
|
||||||
|
|
||||||
if (log_hdump_all)
|
if (log_hdump_all)
|
||||||
|
@ -414,14 +414,6 @@ void log_file_error(const string &filename, int lineno,
|
||||||
logv_file_error(filename, lineno, format, ap);
|
logv_file_error(filename, lineno, format, ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
void log_header(RTLIL::Design *design, const char *format, ...)
|
|
||||||
{
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, format);
|
|
||||||
logv_header(design, format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void log_warning(const char *format, ...)
|
void log_warning(const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
|
@ -122,7 +122,6 @@ extern int log_debug_suppressed;
|
||||||
[[noreturn]] void logv_file_error(const string &filename, int lineno, const char *format, va_list ap);
|
[[noreturn]] void logv_file_error(const string &filename, int lineno, const char *format, va_list ap);
|
||||||
|
|
||||||
|
|
||||||
void log_header(RTLIL::Design *design, const char *format, ...) YS_ATTRIBUTE(format(printf, 2, 3));
|
|
||||||
void log_warning(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2));
|
void log_warning(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2));
|
||||||
void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2));
|
void log_experimental(const char *format, ...) YS_ATTRIBUTE(format(printf, 1, 2));
|
||||||
|
|
||||||
|
@ -154,6 +153,13 @@ inline void log(FmtString<TypeIdentity<Args>...> fmt, Args... args)
|
||||||
log_formatted_string(fmt.format_string(), fmt.format(args...));
|
log_formatted_string(fmt.format_string(), fmt.format(args...));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void log_formatted_header(RTLIL::Design *design, std::string_view format, std::string str);
|
||||||
|
template <typename... Args>
|
||||||
|
inline void log_header(RTLIL::Design *design, FmtString<TypeIdentity<Args>...> fmt, Args... args)
|
||||||
|
{
|
||||||
|
log_formatted_header(design, fmt.format_string(), fmt.format(args...));
|
||||||
|
}
|
||||||
|
|
||||||
static inline void log_suppressed() {
|
static inline void log_suppressed() {
|
||||||
if (log_debug_suppressed && !log_make_debug) {
|
if (log_debug_suppressed && !log_make_debug) {
|
||||||
log("<suppressed ~%d debug messages>\n", log_debug_suppressed);
|
log("<suppressed ~%d debug messages>\n", log_debug_suppressed);
|
||||||
|
|
|
@ -196,7 +196,7 @@ struct OptPass : public Pass {
|
||||||
design->sort();
|
design->sort();
|
||||||
design->check();
|
design->check();
|
||||||
|
|
||||||
log_header(design, fast_mode ? "Finished fast OPT passes.\n" : "Finished OPT passes. (There is nothing left to do.)\n");
|
log_header(design, "Finished fast OPT passes.%s\n", fast_mode ? "" : " (There is nothing left to do.)");
|
||||||
log_pop();
|
log_pop();
|
||||||
}
|
}
|
||||||
} OptPass;
|
} OptPass;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue