diff options
Diffstat (limited to 'codegen.c')
| -rw-r--r-- | codegen.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -273,20 +273,13 @@ static void emit_str_lit( } } -static struct var_def* get_var(const char* name) { - struct var_def* var_def; - if (!scope_get_var(scope, &var_def, name)) - CGEN_PANIC("reference to undefined variable %s", name); - return var_def; -} - static void emit_var_ref( FILE* outfile, const struct var_ref_node* node, const struct lval_def* dst ) { if (dst != NULL) { - emit_mov(outfile, dst, &get_var(node->ident)->loc); + emit_mov(outfile, dst, &node->def_ref->loc); } } @@ -315,7 +308,7 @@ static struct lval_def emit_lval( .type = var_def->resolved_type, }; case LVAL_VAR_REF: - var_def = get_var(node->inner.var_ref.ident); + var_def = node->inner.var_ref.def_ref; return (struct lval_def) { .loc = var_def->loc, .type = var_def->resolved_type, |
