From c663566cd5778bfe6782835e897e212f91d5b1cb Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 20 Nov 2022 01:34:57 +0000 Subject: [PATCH] Fixed comparison against nil for maps --- src/llvm_backend_expr.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index 034682855..389bfb151 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -2724,18 +2724,13 @@ lbValue lb_emit_comp_against_nil(lbProcedure *p, TokenKind op_kind, lbValue x) { case Type_Map: { - lbValue map_ptr = lb_address_from_load_or_generate_local(p, x); - - unsigned indices[2] = {0, 0}; - lbValue hashes_data = lb_emit_struct_ep(p, map_ptr, 0); - lbValue hashes_data_ptr_ptr = lb_emit_struct_ep(p, hashes_data, 0); - LLVMValueRef hashes_data_ptr = LLVMBuildLoad2(p->builder, llvm_addr_type(p->module, hashes_data_ptr_ptr), hashes_data_ptr_ptr.value, ""); + lbValue data_ptr = lb_emit_struct_ev(p, x, 0); if (op_kind == Token_CmpEq) { - res.value = LLVMBuildIsNull(p->builder, hashes_data_ptr, ""); + res.value = LLVMBuildIsNull(p->builder, data_ptr.value, ""); return res; } else { - res.value = LLVMBuildIsNotNull(p->builder, hashes_data_ptr, ""); + res.value = LLVMBuildIsNotNull(p->builder, data_ptr.value, ""); return res; } }