diff options
| author | gingerBill <bill@gingerbill.org> | 2024-08-18 12:37:15 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2024-08-18 12:37:15 +0100 |
| commit | f49ebae9562257effe014e3c175496915041d5f2 (patch) | |
| tree | a6107c86625491f5758ce1e25ef6773b121e3c94 /src/llvm_backend_expr.cpp | |
| parent | 0e82a46047b619a6d70ec7e7a3e23a66794584b1 (diff) | |
Correct `lbAddr_SoaVariable` logic
Diffstat (limited to 'src/llvm_backend_expr.cpp')
| -rw-r--r-- | src/llvm_backend_expr.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 60b6237bf..c2707612a 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -3140,15 +3140,6 @@ gb_internal lbValue lb_emit_comp_against_nil(lbProcedure *p, TokenKind op_kind, return {}; } -gb_internal lbValue lb_make_soa_pointer(lbProcedure *p, Type *type, lbValue const &addr, lbValue const &index) { - lbAddr v = lb_add_local_generated(p, type, false); - lbValue ptr = lb_emit_struct_ep(p, v.addr, 0); - lbValue idx = lb_emit_struct_ep(p, v.addr, 1); - lb_emit_store(p, ptr, addr); - lb_emit_store(p, idx, lb_emit_conv(p, index, t_int)); - - return lb_addr_load(p, v); -} gb_internal lbValue lb_build_unary_and(lbProcedure *p, Ast *expr) { ast_node(ue, UnaryExpr, expr); @@ -3759,8 +3750,7 @@ gb_internal lbValue lb_get_using_variable(lbProcedure *p, Entity *e) { is_soa = true; // NOTE(bill): using SOA value (probably from for-in statement) lbAddr parent_addr = lb_get_soa_variable_addr(p, parent); - Type *soa_ptr_type = alloc_type_soa_pointer(lb_addr_type(parent_addr)); - v = lb_address_from_load_or_generate_local(p, lb_make_soa_pointer(p, soa_ptr_type, parent_addr.addr, parent_addr.soa.index)); + v = lb_addr_get_ptr(p, parent_addr); } else if (pv != nullptr) { v = *pv; } else { |