mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-21 18:30:52 +00:00
-Wtoo-few-parameters on by deafult - for -std=gmqcc it's always an error
This commit is contained in:
parent
20635c5ae4
commit
4d0be789ac
3 changed files with 26 additions and 3 deletions
1
main.c
1
main.c
|
@ -381,6 +381,7 @@ int main(int argc, char **argv) {
|
|||
options_set(opts_warn, WARN_UNKNOWN_CONTROL_SEQUENCE, true);
|
||||
options_set(opts_warn, WARN_EXTENSIONS, true);
|
||||
options_set(opts_warn, WARN_FIELD_REDECLARED, true);
|
||||
options_set(opts_warn, WARN_TOO_FEW_PARAMETERS, true);
|
||||
|
||||
if (!options_parse(argc, argv)) {
|
||||
return usage();
|
||||
|
|
27
parser.c
27
parser.c
|
@ -928,8 +928,29 @@ static bool parser_close_call(parser_t *parser, shunt *sy)
|
|||
return false;
|
||||
} else {
|
||||
if (fun->expression.params_count != paramcount) {
|
||||
parseerror(parser, "expected %i parameters, got %i", (int)fun->expression.params_count, paramcount);
|
||||
return false;
|
||||
ast_value *fval;
|
||||
fval = (ast_istype(fun, ast_value) ? ((ast_value*)fun) : NULL);
|
||||
if (opts_standard == COMPILER_GMQCC)
|
||||
{
|
||||
if (fval)
|
||||
parseerror(parser, "too few parameters for call to %s: expected %i, got %i",
|
||||
fval->name, (int)fun->expression.params_count, paramcount);
|
||||
else
|
||||
parseerror(parser, "too few parameters for function call: expected %i, got %i",
|
||||
(int)fun->expression.params_count, paramcount);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fval)
|
||||
return parsewarning(parser, WARN_TOO_FEW_PARAMETERS,
|
||||
"too few parameters for call to %s: expected %i, got %i",
|
||||
fval->name, (int)fun->expression.params_count, paramcount);
|
||||
else
|
||||
return parsewarning(parser, WARN_TOO_FEW_PARAMETERS,
|
||||
"too few parameters for function call: expected %i, got %i",
|
||||
(int)fun->expression.params_count, paramcount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1617,7 +1638,7 @@ static bool parser_parse_statement(parser_t *parser, ast_block *block, ast_expre
|
|||
parseerror(parser, "parse error");
|
||||
if (expected->expression.next->expression.vtype != TYPE_VOID) {
|
||||
if (opts_standard != COMPILER_GMQCC)
|
||||
parsewarning(parser, WARN_MISSING_RETURN_VALUES, "return without value");
|
||||
(void)!parsewarning(parser, WARN_MISSING_RETURN_VALUES, "return without value");
|
||||
else
|
||||
parseerror(parser, "return without value");
|
||||
}
|
||||
|
|
|
@ -8,3 +8,4 @@ GMQCC_DEFINE_FLAG(UNKNOWN_CONTROL_SEQUENCE)
|
|||
GMQCC_DEFINE_FLAG(EXTENSIONS)
|
||||
GMQCC_DEFINE_FLAG(FIELD_REDECLARED)
|
||||
GMQCC_DEFINE_FLAG(MISSING_RETURN_VALUES)
|
||||
GMQCC_DEFINE_FLAG(TOO_FEW_PARAMETERS)
|
||||
|
|
Loading…
Reference in a new issue