From: Wolfgang (Blub) Bumiller Date: Tue, 14 Aug 2012 14:26:42 +0000 (+0200) Subject: parsewarning() now gets GMQCC_WARN since parsewarning returns whether or not the... X-Git-Tag: 0.1-rc1~302 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=4d47c40cb96edbcf4f5c51ae77342696732e88a2;p=xonotic%2Fgmqcc.git parsewarning() now gets GMQCC_WARN since parsewarning returns whether or not the warning was treated as an error, thus we need to bail if it returns true --- diff --git a/parser.c b/parser.c index 85640e9..4fc07f9 100644 --- a/parser.c +++ b/parser.c @@ -62,7 +62,7 @@ void parseerror(parser_t *parser, const char *fmt, ...) } /* returns true if it counts as an error */ -bool parsewarning(parser_t *parser, int warntype, const char *fmt, ...) +bool GMQCC_WARN parsewarning(parser_t *parser, int warntype, const char *fmt, ...) { va_list ap; int lvl = LVL_WARNING; @@ -1235,8 +1235,10 @@ static bool parser_parse_statement(parser_t *parser, ast_block *block, ast_expre parseerror(parser, "cannot declare a variable from here"); return false; } - if (opts_standard == COMPILER_QCC) - parsewarning(parser, WARN_EXTENSIONS, "missing 'local' keyword when declaring a local variable"); + if (opts_standard == COMPILER_QCC) { + if (parsewarning(parser, WARN_EXTENSIONS, "missing 'local' keyword when declaring a local variable")) + return false; + } if (!parser_variable(parser, block)) return false; *out = NULL;