diff options
| author | gingerBill <bill@gingerbill.org> | 2023-11-23 17:31:00 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-11-23 17:31:00 +0000 |
| commit | f809788f75f997ceebbbbfa0aa138f2ae2011e1e (patch) | |
| tree | f4d4f8c47a772af3f860e406115efac66aa4330e /src/llvm_backend_expr.cpp | |
| parent | 0888c69b57604b674b6c220c6f60297d98bae58c (diff) | |
Add missing type information for soa structs
Diffstat (limited to 'src/llvm_backend_expr.cpp')
| -rw-r--r-- | src/llvm_backend_expr.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 8678a125c..d1176f896 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -2939,6 +2939,12 @@ gb_internal lbValue lb_build_unary_and(lbProcedure *p, Ast *expr) { } else if (is_type_soa_pointer(tv.type)) { ast_node(ie, IndexExpr, ue_expr); lbValue addr = lb_build_addr_ptr(p, ie->expr); + + if (is_type_pointer(type_deref(addr.type))) { + addr = lb_emit_load(p, addr); + } + GB_ASSERT(is_type_pointer(addr.type)); + lbValue index = lb_build_expr(p, ie->index); if (!build_context.no_bounds_check) { |