]> de.git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - parser.c
call ir_function_finalize on array accessors otherwise they'll blow up stuff
[xonotic/gmqcc.git] / parser.c
index 1bd22059f850e088caac594ec8e7bfccd9c58ce1..7b7805f4f439e6c5709c42bb924f17616be193c8 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -3586,7 +3586,8 @@ bool parser_finish(const char *output)
             asvalue = (ast_value*)(parser->globals[i].var);
             if (asvalue->setter) {
                 if (!ast_global_codegen(asvalue->setter, ir, false) ||
-                    !ast_function_codegen(asvalue->setter->constval.vfunc, ir))
+                    !ast_function_codegen(asvalue->setter->constval.vfunc, ir) ||
+                    !ir_function_finalize(asvalue->setter->constval.vfunc->ir_func))
                 {
                     printf("failed to generate setter for %s\n", parser->globals[i].name);
                     ir_builder_delete(ir);
@@ -3595,7 +3596,8 @@ bool parser_finish(const char *output)
             }
             if (asvalue->getter) {
                 if (!ast_global_codegen(asvalue->getter, ir, false) ||
-                    !ast_function_codegen(asvalue->getter->constval.vfunc, ir))
+                    !ast_function_codegen(asvalue->getter->constval.vfunc, ir) ||
+                    !ir_function_finalize(asvalue->getter->constval.vfunc->ir_func))
                 {
                     printf("failed to generate getter for %s\n", parser->globals[i].name);
                     ir_builder_delete(ir);