sparse_error
sparse_error(arg->pos, "invalid type for argument %d:", n);
sparse_error(sym->pos, "symbol '%s' has multiple initializers (originally initialized at %s:%d)",
sparse_error(sym->pos, "symbol '%s' redeclared with different type (originally declared at %s:%d) - %s",
sparse_error(stmt->pos, "return with no return value");
sparse_error(stmt->pos, "need constant string for inline asm");
sparse_error(expr ? expr->pos : stmt->pos, "asm output constraint is not a string");
sparse_error(expr ? expr->pos : stmt->pos, "asm input constraint is not a string");
sparse_error(stmt->pos, "bad asm clobbers");
sparse_error(stmt->pos, "bad asm label");
sparse_error(stmt->pos, "label '%s' was not declared", show_ident(label->ident));
sparse_error(expr->pos, "incompatible types for operation (%s)", show_special(expr->op));
sparse_error(expr->pos, "incompatible types for operation (%s)", show_special(expr->op));
sparse_error(t1->pos,
sparse_error(expr->pos, "incorrect type in conditional (non-scalar type)");
sparse_error(token->pos,
sparse_error(token->pos,
sparse_error(token->pos, "Expected member name");
sparse_error(token->pos, "typename in expression");
sparse_error(token->pos, "Expected member name");
sparse_error(token->pos, "Syntax error in unary expression");
sparse_error(token->pos, "Syntax error in unary expression");
sparse_error(next->pos, "No right hand side of '%s'-expression", show_special(op)); \
sparse_error(token->pos, "an expression is expected before ')'");
sparse_error(fn->pos, "marked inline, but without a definition");
sparse_error(insn->pos, "return without value");
sparse_error(insn->pos, "bad number of phi operands in:\n\t%s",
sparse_error(src->pos, "wrong BB for %s:", show_instruction(src));
sparse_error(insn->pos, "null pseudo in %s", show_instruction(insn));
sparse_error(insn->pos, "wrong usage for %s in %s", show_pseudo(pseudo),
sparse_error(insn->pos, "branch to dead BB: %s", show_instruction(insn));
sparse_error(token->pos, "%s", errmsg);
sparse_error(token->pos, "got %s", show_token(token));
sparse_error(token->pos, "Expected %s %s", show_special(op), where);
sparse_error(token->pos, "got %s", show_token(token));
extern void sparse_error(struct position, const char *, ...) FORMAT_ATTR(2);
sparse_error(token->pos, "empty enum definition");
sparse_error(token->pos, "expected '(' after typeof");
sparse_error(token->pos, "expected expression after the '(' token");
sparse_error(token->pos,
sparse_error(token->pos, "unknown mode attribute %s", show_ident(token->ident));
sparse_error(token->pos, "expect attribute mode symbol\n");
sparse_error(*pos, "__thread can only be used alone, or with "
sparse_error(*pos, "duplicate %s", storage_class[class]);
sparse_error(*pos, "multiple storage classes");
sparse_error(next->pos, "__thread can only be used alone, or "
sparse_error(token->pos, "expected '(' after _Alignas");
sparse_error(pos, "impossible combination of type specifiers: %s %s",
sparse_error(pos, "two or more data types in declaration specifiers");
sparse_error(token->pos, "invalid modifier");
sparse_error(token->pos, "duplicate array static declarator");
sparse_error(token->pos, "invalid bitfield specifier for type %s.",
sparse_error(token->pos, "invalid bitfield width, %lld.", width);
sparse_error(token->pos, "invalid named zero-width bitfield `%s'",
sparse_error(token->pos, "dubious one-bit signed bitfield");
sparse_error(token->pos, "expected ; at end of declaration");
sparse_error(token->pos, "Expected constant expression");
sparse_error(pos, "bad or missing string literal");
sparse_error(cond->pos, "static assertion failed: %s",
sparse_error(stmt->pos, "not in switch scope");
sparse_error(sym->pos, "non-local var '%s' in for-loop initializer", name);
sparse_error(token->pos, "expected 'while' after 'do'");
sparse_error(stmt->pos, "break/continue not in iterator scope");
sparse_error(token->pos, "Expected identifier or goto expression");
sparse_error(stmt->pos, "label '%s' redefined", show_ident(s->ident));
sparse_error(token->pos, "Expected constant expression");
sparse_error(sym->pos, "no identifier for function argument");
sparse_error(arg->pos, "missing type declaration for parameter '%s'",
sparse_error(token->pos, "expected ';' at end of parameter declaration");
sparse_error(token->pos, "expected function body");
sparse_error(token->pos, "void declaration");
sparse_error(token->pos, "expected identifier name in type definition");
sparse_error(pos, "don't know how to apply mode to %s",
sparse_error(token->pos, "expected declaration");
sparse_error(expr->pos, "incompatible restricted type");
sparse_error(token->pos, "bad enum definition");
sparse_error(token->pos, "using '%s'", include_name);
sparse_error(token->pos, "unable to open '%s'", filename);
sparse_error(arg->pos, "parameter name missing");
sparse_error(arg->pos, "\"%s\" may not appear in macro parameter list",
sparse_error(arg->pos, "missing ')' in macro parameter list");
sparse_error(arg->pos, "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro");
sparse_error(arg->pos, "too many arguments in macro definition");
sparse_error(token->pos, "'#' is not followed by a macro parameter");
sparse_error(concat->pos, "'##' cannot appear at the ends of macro expansion");
sparse_error(token->pos, "expected preprocessor identifier");
sparse_error(token->pos, "'##' cannot appear at the ends of macro expansion");
sparse_error(token->pos, "too many instances of argument in body");
sparse_error(token->pos, "expected identifier to 'define'");
sparse_error(token->pos, "expected identifier to 'undef'");
sparse_error(token->pos, "expected preprocessor identifier");
sparse_error(token->pos, "expected preprocessor identifier");
sparse_error(p->pos, "missing ')' after \"defined\"");
sparse_error(p->pos, "missing '(' after \"__has_%s\"",
sparse_error(p->pos, "identifier expected");
sparse_error(p->pos, "missing ')' after \"__has_%s\"",
sparse_error(p->pos, "garbage at end: %s", show_token_sequence(p, 0));
sparse_error(token->pos, "unmatched #elif within stream");
sparse_error(token->pos, "#elif after #else");
sparse_error(token->pos, "unmatched #else within stream");
sparse_error(token->pos, "#else after #else");
sparse_error(token->pos, "unmatched #endif in stream");
sparse_error(token->pos, "%s", show_token_sequence(token->next, 0));
sparse_error(token->pos, "expected path string");
sparse_error(token->pos, "expected path string");
sparse_error(token->pos, "expected path string");
sparse_error(token->pos, "unrecognized preprocessor line '%s'", show_token_sequence(token, 0));
sparse_error(stream->top_if->pos, "unterminated preprocessor conditional");
sparse_error(next->pos,
sparse_error(what->pos, "macro \"%s\" requires %d arguments, but only %d given",
sparse_error(what->pos, "macro \"%s\" passed %d arguments, but takes just %d",
sparse_error(what->pos, "unterminated argument list invoking macro \"%s\"",
sparse_error(token->pos, "too long token expansion");
sparse_error(left->pos, "'##' failed: concatenation is not a valid token");
sparse_error(start->pos, "expected '>' at end of filename");
sparse_error(ctype->pos, "no value possible for %s", show_typename(ctype));
sparse_error(sym->pos, "ctype on preprocessor command? (%s)", show_ident(sym->ident));
sparse_error(sym->pos, "internal error: symbol type already bound");
sparse_error(sym->pos, "Trying to use reserved word '%s' as identifier", show_ident(ident));
sparse_error(pos, "multiple address spaces given");
sparse_error(stream_pos(stream), "number token exceeds %td characters",
sparse_error(stream_pos(stream),