Browse Source

Add lb_build_addr on `or_return` and `or_else` for sanity's sake

gingerBill 3 years ago
parent
commit
2b07afaf70
1 changed files with 10 additions and 0 deletions
  1. 10 0
      src/llvm_backend_expr.cpp

+ 10 - 0
src/llvm_backend_expr.cpp

@@ -4611,6 +4611,16 @@ lbAddr lb_build_addr(lbProcedure *p, Ast *expr) {
 
 
 		return lb_addr(res);
 		return lb_addr(res);
 	case_end;
 	case_end;
+	
+	case_ast_node(oe, OrElseExpr, expr);
+		lbValue ptr = lb_address_from_load_or_generate_local(p, lb_build_expr(p, expr));
+		return lb_addr(ptr);
+	case_end;
+	
+	case_ast_node(oe, OrReturnExpr, expr);
+		lbValue ptr = lb_address_from_load_or_generate_local(p, lb_build_expr(p, expr));
+		return lb_addr(ptr);
+	case_end;
 	}
 	}
 
 
 	TokenPos token_pos = ast_token(expr).pos;
 	TokenPos token_pos = ast_token(expr).pos;