diagnostics: expose a means to know whether a warning is enabled

* src/complain.h, src/complain.c (warning_is_enabled): New.
This commit is contained in:
Akim Demaille
2019-03-28 14:48:00 +01:00
parent a4d33cdf48
commit 19ea6b1405
2 changed files with 11 additions and 3 deletions

View File

@@ -338,12 +338,17 @@ warning_is_unset (warnings flags)
return true;
}
bool
warning_is_enabled (warnings flags)
{
return severity_warning <= warning_severity (flags);
}
/** Display a "[-Wyacc]" like message on \a out. */
static void
warnings_print_categories (warnings warn_flags, FILE *out)
{
/* Display only the first match, the second is "-Wall". */
for (size_t i = 0; warnings_args[i]; ++i)
if (warn_flags & warnings_types[i])
{
@@ -356,6 +361,7 @@ warnings_print_categories (warnings warn_flags, FILE *out)
warnings_args[i]);
end_use_class (style, out);
fputc (']', out);
/* Display only the first match, the second is "-Wall". */
return;
}
}
@@ -426,8 +432,7 @@ error_message (const location *loc, warnings flags, severity sever,
fflush (stderr);
}
/** Raise a complaint. That can be a fatal error, an error or just a
warning. */
/** Raise a complaint (fatal error, error or just warning). */
static void
complains (const location *loc, warnings flags, const char *message,

View File

@@ -125,6 +125,9 @@ typedef enum
(Never enabled, never disabled). */
bool warning_is_unset (warnings flags);
/** Whether warnings of \a flags should be reported. */
bool warning_is_enabled (warnings flags);
/** Make a complaint, with maybe a location. */
void complain (location const *loc, warnings flags, char const *message, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));