|| (node->kind == Ast_Kind_Global)
|| (node->kind == Ast_Kind_Dereference)
|| (node->kind == Ast_Kind_Array_Access)
- || (node->kind == Ast_Kind_Field_Access);
+ || (node->kind == Ast_Kind_Field_Access)
+ || (node->kind == Ast_Kind_Memres);
}
static inline b32 binop_is_assignment(AstBinaryOp* binop) {
compile_expression(mod, &code, assign->right);
compile_store_instruction(mod, &code, field->type, offset);
+
+ } else if (lval->kind == Ast_Kind_Memres) {
+ AstMemRes* memres = (AstMemRes *) lval;
+
+ compile_memory_reservation_location(mod, &code, memres);
+ compile_expression(mod, &code, assign->right);
+ compile_store_instruction(mod, &code, memres->type, 0);
+
} else {
assert(("Invalid lval", 0));
}