X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=diagnostic.c;h=eacf085389f7087743c844088c010c63af295938;hb=a88c98bacf25e3505a0cf39326344554cf078a2a;hp=468f0c6da8d2f2f4a4afc2e0e7d401e41ef661aa;hpb=68a770de4603c696518d3dd2f278985262a1a2a2;p=cparser diff --git a/diagnostic.c b/diagnostic.c index 468f0c6..eacf085 100644 --- a/diagnostic.c +++ b/diagnostic.c @@ -34,8 +34,6 @@ unsigned diagnostic_count = 0; unsigned error_count = 0; /** Number of occurred warnings. */ unsigned warning_count = 0; -/** true if warnings should be inhibited */ -bool inhibit_all_warnings = false; static const source_position_t *curr_pos = NULL; @@ -92,9 +90,18 @@ static void diagnosticvf(const char *const fmt, va_list ap) break; } + case 'u': { + const unsigned int val = va_arg(ap, unsigned int); + fprintf(stderr, "%u", val); + break; + } + case 'Y': { const symbol_t *const symbol = va_arg(ap, const symbol_t*); - fputs(symbol->string, stderr); + if (symbol == NULL) + fputs("(null)", stderr); + else + fputs(symbol->string, stderr); break; } @@ -120,6 +127,12 @@ static void diagnosticvf(const char *const fmt, va_list ap) break; } + case 't': { + const token_t *const token = va_arg(ap, const token_t*); + print_pp_token(stderr, token); + break; + } + case 'K': { const token_t* const token = va_arg(ap, const token_t*); print_token(stderr, token); @@ -128,7 +141,7 @@ static void diagnosticvf(const char *const fmt, va_list ap) case 'k': { if (extended) { - bool first = false; + bool first = true; va_list* toks = va_arg(ap, va_list*); const char* const delimiter = va_arg(ap, const char*); for (;;) { @@ -208,9 +221,6 @@ static void warningvf(const source_position_t *pos, void warningf(const source_position_t *pos, const char *const fmt, ...) { - if (inhibit_all_warnings) - return; - va_list ap; va_start(ap, fmt); curr_pos = pos;