#include "warning.h"
/** Number of occurred diagnostics. */
-unsigned diagnostic_count = 0;
+unsigned diagnostic_count = 0;
/** Number of occurred errors. */
-unsigned error_count = 0;
+unsigned error_count = 0;
/** Number of occurred warnings. */
-unsigned warning_count = 0;
-bool show_column = true;
+unsigned warning_count = 0;
+bool show_column = true;
+bool diagnostics_show_option = true;
static const source_position_t *curr_pos = NULL;
{
fprintf(out, "at line %u", pos->lineno);
if (show_column)
- fprintf(out, ":%u", pos->colno);
+ fprintf(out, ":%u", (unsigned)pos->colno);
if (curr_pos == NULL || curr_pos->input_name != pos->input_name)
fprintf(out, " of \"%s\"", pos->input_name);
}
va_list* toks = va_arg(ap, va_list*);
const char* const delimiter = va_arg(ap, const char*);
for (;;) {
- const token_type_t tok = va_arg(*toks, token_type_t);
+ const token_kind_t tok = va_arg(*toks, token_kind_t);
if (tok == 0)
break;
if (first) {
} else {
fputs(delimiter, stderr);
}
- print_token_type(stderr, tok);
+ print_token_kind(stderr, tok);
}
} else {
- const token_type_t token = va_arg(ap, token_type_t);
- print_token_type(stderr, token);
+ const token_kind_t token = va_arg(ap, token_kind_t);
+ print_token_kind(stderr, token);
}
break;
}
FILE *const out = stderr;
fprintf(out, "%s:%u:", pos->input_name, pos->lineno);
if (show_column)
- fprintf(out, "%u:", pos->colno);
+ fprintf(out, "%u:", (unsigned)pos->colno);
fprintf(out, " %s: ", kind);
curr_pos = pos;
diagnosticvf(fmt, ap);
va_list ap;
va_start(ap, fmt);
warning_switch_t const *const s = get_warn_switch(warn);
- switch (s->state) {
+ switch ((unsigned) s->state) {
char const* kind;
case WARN_STATE_ON:
if (is_warn_on(WARN_ERROR)) {
kind = "warning";
}
diagnosticposvf(pos, kind, fmt, ap);
- fprintf(stderr, " [-W%s]\n", s->name);
+ if (diagnostics_show_option)
+ fprintf(stderr, " [-W%s]\n", s->name);
break;
default: