Refactor some redundant error/warning-printing code

This commit is contained in:
Rangi42
2024-02-24 19:05:29 -05:00
parent 595c066c2a
commit d87b1ed22a
2 changed files with 32 additions and 35 deletions

View File

@@ -331,8 +331,10 @@ void printDiag(char const *fmt, va_list args, char const *type,
char const *flagfmt, char const *flag)
{
fputs(type, stderr);
fputs(": ", stderr);
fstk_DumpCurrent();
fprintf(stderr, flagfmt, flag);
fputs("\n ", stderr);
vfprintf(stderr, fmt, args);
lexer_DumpStringExpansions();
}
@@ -342,7 +344,7 @@ void error(char const *fmt, ...)
va_list args;
va_start(args, fmt);
printDiag(fmt, args, "error: ", ":\n ", NULL);
printDiag(fmt, args, "error", ":", NULL);
va_end(args);
// This intentionally makes 0 act as "unlimited" (or at least "limited to sizeof(unsigned)")
@@ -357,7 +359,7 @@ void error(char const *fmt, ...)
va_list args;
va_start(args, fmt);
printDiag(fmt, args, "FATAL: ", ":\n ", NULL);
printDiag(fmt, args, "FATAL", ":", NULL);
va_end(args);
exit(1);
@@ -375,11 +377,11 @@ void warning(enum WarningID id, char const *fmt, ...)
break;
case WARNING_ENABLED:
printDiag(fmt, args, "warning: ", ": [-W%s]\n ", flag);
printDiag(fmt, args, "warning", ": [-W%s]", flag);
break;
case WARNING_ERROR:
printDiag(fmt, args, "error: ", ": [-Werror=%s]\n ", flag);
printDiag(fmt, args, "error", ": [-Werror=%s]", flag);
break;
case WARNING_DEFAULT: