X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=ast.c;h=5c38fa96ea4819319bef814cf819005d734057b3;hp=1f793a11bc01d12cebf04c2a065cfd9067c50f24;hb=2917d39ef19b9beb889448d161503ec8153823a1;hpb=a934e0fe4b4fd4b79350eb8c7f39b83f86514d3a diff --git a/ast.c b/ast.c index 1f793a1..5c38fa9 100644 --- a/ast.c +++ b/ast.c @@ -113,8 +113,10 @@ static void ast_expression_init(ast_expression *self, self->outr = NULL; self->params = NULL; self->count = 0; - self->flags = 0; self->varparam = NULL; + self->flags = 0; + if (OPTS_OPTION_BOOL(OPTION_COVERAGE)) + self->flags |= AST_FLAG_BLOCK_COVERAGE; } static void ast_expression_delete(ast_expression *self) @@ -357,6 +359,7 @@ ast_value* ast_value_new(lex_ctx_t ctx, const char *name, int t) self->cvq = CV_NONE; self->hasvalue = false; self->isimm = false; + self->inexact = false; self->uses = 0; memset(&self->constval, 0, sizeof(self->constval)); self->initlist = NULL; @@ -1430,6 +1433,8 @@ bool ast_global_codegen(ast_value *self, ir_builder *ir, bool isfield) self->ir_v->flags |= IR_FLAG_INCLUDE_DEF; if (self->expression.flags & AST_FLAG_ERASEABLE) self->ir_v->flags |= IR_FLAG_ERASEABLE; + if (self->expression.flags & AST_FLAG_BLOCK_COVERAGE) + func->flags |= IR_FLAG_BLOCK_COVERAGE; /* The function is filled later on ast_function_codegen... */ return true; }