mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-02-22 19:31:03 +00:00
fix wrong parameter order in parse_variable calls, dammit I hate how 'bool' and 'int' are implicitly convertible here
This commit is contained in:
parent
1b72cb264a
commit
4513fc4d0b
1 changed files with 8 additions and 7 deletions
15
parser.c
15
parser.c
|
@ -1944,7 +1944,7 @@ static bool parse_for(parser_t *parser, ast_block *block, ast_expression **out)
|
||||||
"current standard does not allow variable declarations in for-loop initializers"))
|
"current standard does not allow variable declarations in for-loop initializers"))
|
||||||
goto onerr;
|
goto onerr;
|
||||||
}
|
}
|
||||||
if (!parse_variable(parser, block, CV_VAR, false, typevar))
|
if (!parse_variable(parser, block, true, CV_VAR, typevar))
|
||||||
goto onerr;
|
goto onerr;
|
||||||
}
|
}
|
||||||
else if (parser->tok != ';')
|
else if (parser->tok != ';')
|
||||||
|
@ -2244,7 +2244,7 @@ static bool parse_statement(parser_t *parser, ast_block *block, ast_expression *
|
||||||
if (parsewarning(parser, WARN_EXTENSIONS, "missing 'local' keyword when declaring a local variable"))
|
if (parsewarning(parser, WARN_EXTENSIONS, "missing 'local' keyword when declaring a local variable"))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!parse_variable(parser, block, CV_NONE, false, typevar))
|
if (!parse_variable(parser, block, false, CV_NONE, typevar))
|
||||||
return false;
|
return false;
|
||||||
*out = NULL;
|
*out = NULL;
|
||||||
return true;
|
return true;
|
||||||
|
@ -2261,7 +2261,7 @@ static bool parse_statement(parser_t *parser, ast_block *block, ast_expression *
|
||||||
parseerror(parser, "expected variable declaration");
|
parseerror(parser, "expected variable declaration");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!parse_variable(parser, block, CV_VAR, false, NULL))
|
if (!parse_variable(parser, block, true, CV_VAR, NULL))
|
||||||
return false;
|
return false;
|
||||||
*out = NULL;
|
*out = NULL;
|
||||||
return true;
|
return true;
|
||||||
|
@ -3860,7 +3860,8 @@ skipvar:
|
||||||
parseerror(parser, "cannot initialize a global constant variable with a non-constant expression");
|
parseerror(parser, "cannot initialize a global constant variable with a non-constant expression");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (opts_standard != COMPILER_GMQCC && !OPTS_FLAG(INITIALIZED_NONCONSTANTS) &&
|
if (opts_standard != COMPILER_GMQCC &&
|
||||||
|
!OPTS_FLAG(INITIALIZED_NONCONSTANTS) &&
|
||||||
is_const_var != CV_VAR)
|
is_const_var != CV_VAR)
|
||||||
{
|
{
|
||||||
var->constant = true;
|
var->constant = true;
|
||||||
|
@ -3947,7 +3948,7 @@ static bool parser_global_statement(parser_t *parser)
|
||||||
|
|
||||||
if (istype || parser->tok == TOKEN_TYPENAME || parser->tok == '.')
|
if (istype || parser->tok == TOKEN_TYPENAME || parser->tok == '.')
|
||||||
{
|
{
|
||||||
return parse_variable(parser, NULL, CV_NONE, false, istype);
|
return parse_variable(parser, NULL, false, CV_NONE, istype);
|
||||||
}
|
}
|
||||||
else if (parser->tok == TOKEN_IDENT && !strcmp(parser_tokval(parser), "var"))
|
else if (parser->tok == TOKEN_IDENT && !strcmp(parser_tokval(parser), "var"))
|
||||||
{
|
{
|
||||||
|
@ -3956,7 +3957,7 @@ static bool parser_global_statement(parser_t *parser)
|
||||||
parseerror(parser, "expected variable declaration after 'var'");
|
parseerror(parser, "expected variable declaration after 'var'");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return parse_variable(parser, NULL, CV_VAR, false, NULL);
|
return parse_variable(parser, NULL, true, CV_VAR, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (parser->tok == TOKEN_KEYWORD)
|
else if (parser->tok == TOKEN_KEYWORD)
|
||||||
|
@ -3973,7 +3974,7 @@ static bool parser_global_statement(parser_t *parser)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return parse_variable(parser, NULL, CV_CONST, true, NULL);
|
return parse_variable(parser, NULL, true, CV_CONST, NULL);
|
||||||
}
|
}
|
||||||
else if (!strcmp(parser_tokval(parser), "typedef")) {
|
else if (!strcmp(parser_tokval(parser), "typedef")) {
|
||||||
if (!parser_next(parser)) {
|
if (!parser_next(parser)) {
|
||||||
|
|
Loading…
Reference in a new issue