aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 5d2f923aa..16f202c6a 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -6894,8 +6894,10 @@ irAddr ir_build_addr(irProcedure *proc, Ast *expr) {
case_ast_node(be, BinaryExpr, expr);
irValue *v = ir_build_expr(proc, expr);
Type *t = ir_type(v);
- GB_ASSERT(is_type_pointer(t));
- return ir_addr(v);
+ if (is_type_pointer(t)) {
+ return ir_addr(v);
+ }
+ return ir_addr(ir_address_from_load_or_generate_local(proc, v));
case_end;
case_ast_node(ie, IndexExpr, expr);