From b4dab842359b2abc1e9cfb1810dbbc63d8901847 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 29 Apr 2024 18:13:50 -0700 Subject: [PATCH] always resolve to address mode evaluation when doing a member access --- src/eval/eval_compiler.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/eval/eval_compiler.c b/src/eval/eval_compiler.c index 792d1cb9..d8adf413 100644 --- a/src/eval/eval_compiler.c +++ b/src/eval/eval_compiler.c @@ -952,8 +952,10 @@ eval_irtree_and_type_from_expr(Arena *arena, TG_Graph *graph, RDI_Parsed *rdi, E // generate ir tree if (can_generate){ EVAL_IRTree *new_tree = l.tree; + EVAL_EvalMode mode = l.mode; if (l_resolve){ new_tree = eval_irtree_resolve_to_value(arena, graph, rdi, l.mode, new_tree, l_restype); + mode = EVAL_EvalMode_Addr; } if (r_off != 0){ EVAL_IRTree *const_tree = eval_irtree_const_u(arena, r_off); @@ -963,7 +965,7 @@ eval_irtree_and_type_from_expr(Arena *arena, TG_Graph *graph, RDI_Parsed *rdi, E // fill result result.tree = new_tree; result.type_key = r_type; - result.mode = l.mode; + result.mode = mode; } }break; }