NRCALL now sets block->final and block->is_return

This commit is contained in:
Wolfgang (Blub) Bumiller 2012-12-19 20:40:45 +01:00
parent bf267d0238
commit 7c5fc26081

4
ir.c
View file

@ -1581,6 +1581,10 @@ ir_instr* ir_block_create_call(ir_block *self, lex_ctx ctx, const char *label, i
in = ir_instr_new(ctx, self, (noreturn ? VINSTR_NRCALL : INSTR_CALL0));
if (!in)
return NULL;
if (noreturn) {
self->final = true;
self->is_return = true;
}
out = ir_value_out(self->owner, label, (func->outtype == TYPE_VOID) ? store_return : store_value, func->outtype);
if (!out) {
ir_instr_delete(in);