From ed73441a4c2a3828626709d807b70bbd53b7a161 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 1 Sep 2022 15:11:53 +0100 Subject: [PATCH] Fix code generation related to Objective-C related `x->y()` calls --- src/check_expr.cpp | 5 ++++- src/llvm_backend_proc.cpp | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 9c2d20781..54dc081cf 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -8769,7 +8769,10 @@ ExprKind check_selector_call_expr(CheckerContext *c, Operand *o, Ast *node, Type Ast *first_arg = x.expr->SelectorExpr.expr; GB_ASSERT(first_arg != nullptr); - first_arg->state_flags |= StateFlag_SelectorCallExpr; + Entity *e = entity_of_node(se->expr); + if (!(e != nullptr && (e->kind == Entity_Procedure || e->kind == Entity_ProcGroup))) { + first_arg->state_flags |= StateFlag_SelectorCallExpr; + } Type *pt = base_type(x.type); GB_ASSERT(pt->kind == Type_Proc); diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index f85d8397c..d9f4e0c0d 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -2867,9 +2867,9 @@ lbValue lb_build_call_expr_internal(lbProcedure *p, Ast *expr) { return y; } - Ast *pexpr = unparen_expr(ce->proc); + Ast *proc_expr = unparen_expr(ce->proc); if (proc_mode == Addressing_Builtin) { - Entity *e = entity_of_node(pexpr); + Entity *e = entity_of_node(proc_expr); BuiltinProcId id = BuiltinProc_Invalid; if (e != nullptr) { id = cast(BuiltinProcId)e->Builtin.id; @@ -2881,7 +2881,6 @@ lbValue lb_build_call_expr_internal(lbProcedure *p, Ast *expr) { // NOTE(bill): Regular call lbValue value = {}; - Ast *proc_expr = unparen_expr(ce->proc); Entity *proc_entity = entity_of_node(proc_expr); if (proc_entity != nullptr) {