From 4d47c40cb96edbcf4f5c51ae77342696732e88a2 Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Tue, 14 Aug 2012 16:26:42 +0200 Subject: [PATCH] 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 --- parser.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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; -- 2.39.2