const M_Object string = new_string(emit->gwion, s_name(*id));
emit_pushimm(emit, (m_uint)string);
emit_pushimm(emit, (m_uint)emit->locale->code);
- emit_exp_call1(emit, emit->locale, true);
+ CHECK_BB(emit_exp_call1(emit, emit->locale, true));
emit_regmove(emit, -emit->locale->def->base->ret_type->size);
const VM_Code code = finalyze(emit, EOC);
const VM_Shred shred = new_vm_shred(emit->gwion->mp, code);
.type = emit->env->class_def,
.exp_type = ae_exp_primary
};
- emit_exp(emit, &exp);
+ CHECK_BB(emit_exp(emit, &exp));
offset += SZ_INT;
}
if(sporker.captures) {
};
if(cap->is_ref) exp_setvar(&exp, true);
offset += exp_size(&exp);
- emit_exp(emit, &exp);
+ CHECK_BB(emit_exp(emit, &exp));
// emit_exp_addref(emit, &exp, -exp_size(&exp));
}
}
ANN static m_bool optimize_tail_call(const Emitter emit, const Exp_Call *e) {
if (e->args) {
- emit_func_args(emit, e);
+ CHECK_BB(emit_func_args(emit, e));
const Func f = e->func->type->info->func;
emit_regmove(emit, -f->def->stack_depth);
emit_args(emit, f);
env->context = base->info->value->from->ctx;
const m_uint scope = env_push(env, base->info->value->from->owner_class,
base->info->value->from->owner);
- (void)scan0_class_def(env, cdef);
+ CHECK_BN(scan0_class_def(env, cdef));
const Type t = cdef->base.type;
if (GET_FLAG(base, abstract) && !tflag(base, tflag_union))
SET_FLAG(t, abstract);