]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - parser.c
Merge branch 'master' into cooking
[xonotic/gmqcc.git] / parser.c
index 27c694d406955059e8400eb121c4dfb223734186..7d9ac6a353155724928a29a70b10c4e25f27cca9 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -266,6 +266,7 @@ static ast_value* parser_const_string(parser_t *parser, const char *str, bool do
             char name[32];
             util_snprintf(name, sizeof(name), "dotranslate_%lu", (unsigned long)(parser->translated++));
             ast_value_set_name(out, name);
+            out->expression.flags |= AST_FLAG_INCLUDE_DEF;
         }
         return out;
     }
@@ -284,6 +285,7 @@ static ast_value* parser_const_string(parser_t *parser, const char *str, bool do
     out->cvq      = CV_CONST;
     out->hasvalue = true;
     out->isimm    = true;
+    out->expression.flags |= AST_FLAG_INCLUDE_DEF;
     out->constval.vstring = parser_strdup(str);
     vec_push(parser->imm_string, out);
     util_htseth(parser->ht_imm_string, str, hash, out);
@@ -2955,6 +2957,11 @@ static bool parse_return(parser_t *parser, ast_block *block, ast_expression **ou
             return false;
         }
 
+        if (parser->tok != ';')
+            parseerror(parser, "missing semicolon after return assignment");
+        else if (!parser_next(parser))
+            parseerror(parser, "parse error after return assignment");
+
         *out = var;
         return true;
     }