mirror of
https://github.com/YosysHQ/yosys
synced 2025-09-22 17:31:28 +00:00
Use C++ stringf machinery in verilog_error
This commit is contained in:
parent
733b6f0124
commit
8cd3c069d6
2 changed files with 20 additions and 31 deletions
|
@ -32,37 +32,14 @@ USING_YOSYS_NAMESPACE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[[noreturn]]
|
[[noreturn]]
|
||||||
static void verr_at(std::string filename, int begin_line, char const *fmt, va_list ap)
|
void VERILOG_FRONTEND::formatted_err_at_loc(Location loc, std::string str)
|
||||||
{
|
{
|
||||||
char buffer[1024];
|
YOSYS_NAMESPACE_PREFIX log_file_error(loc.begin.filename ? *(loc.begin.filename) : "UNKNOWN", loc.begin.line,
|
||||||
char *p = buffer;
|
"%s\n", std::move(str));
|
||||||
p += vsnprintf(p, buffer + sizeof(buffer) - p, fmt, ap);
|
|
||||||
p += snprintf(p, buffer + sizeof(buffer) - p, "\n");
|
|
||||||
YOSYS_NAMESPACE_PREFIX log_file_error(filename, begin_line, "%s", buffer);
|
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vwarn_at(std::string filename, int begin_line, char const *fmt, va_list ap)
|
void VERILOG_FRONTEND::formatted_warn_at_loc(Location loc, std::string str)
|
||||||
{
|
{
|
||||||
char buffer[1024];
|
YOSYS_NAMESPACE_PREFIX log_file_warning(loc.begin.filename ? *(loc.begin.filename) : "UNKNOWN", loc.begin.line,
|
||||||
char *p = buffer;
|
"%s\n", std::move(str));
|
||||||
p += vsnprintf(p, buffer + sizeof(buffer) - p, fmt, ap);
|
|
||||||
p += snprintf(p, buffer + sizeof(buffer) - p, "\n");
|
|
||||||
YOSYS_NAMESPACE_PREFIX log_file_warning(filename, begin_line, "%s", buffer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[[noreturn]]
|
|
||||||
void VERILOG_FRONTEND::err_at_loc(Location loc, char const *fmt, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start(args, fmt);
|
|
||||||
verr_at(loc.begin.filename ? *(loc.begin.filename) : "UNKNOWN", loc.begin.line, fmt, args);
|
|
||||||
}
|
|
||||||
void VERILOG_FRONTEND::warn_at_loc(Location loc, char const *fmt, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
va_start(args, fmt);
|
|
||||||
vwarn_at(loc.begin.filename ? *(loc.begin.filename) : "UNKNOWN", loc.begin.line, fmt, args);
|
|
||||||
va_end(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,20 @@ YOSYS_NAMESPACE_BEGIN
|
||||||
namespace VERILOG_FRONTEND
|
namespace VERILOG_FRONTEND
|
||||||
{
|
{
|
||||||
[[noreturn]]
|
[[noreturn]]
|
||||||
void err_at_loc(Location loc, char const *fmt, ...);
|
void formatted_err_at_loc(Location loc, std::string str);
|
||||||
void warn_at_loc(Location loc, char const *fmt, ...);
|
template <typename... Args>
|
||||||
|
[[noreturn]]
|
||||||
|
void err_at_loc(Location loc, FmtString<TypeIdentity<Args>...> fmt, const Args &... args)
|
||||||
|
{
|
||||||
|
formatted_err_at_loc(std::move(loc), fmt.format(args...));
|
||||||
|
}
|
||||||
|
|
||||||
|
void formatted_warn_at_loc(Location loc, std::string str);
|
||||||
|
template <typename... Args>
|
||||||
|
void warn_at_loc(Location loc, FmtString<TypeIdentity<Args>...> fmt, const Args &... args)
|
||||||
|
{
|
||||||
|
formatted_warn_at_loc(std::move(loc), fmt.format(args...));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
YOSYS_NAMESPACE_END
|
YOSYS_NAMESPACE_END
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue