From 5cb2a7bbde3014a2119b68d53d5108b3d79adaea Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 17 May 2025 13:05:07 -0700 Subject: [PATCH] fix usage of [] operator on pointer values; fix incorrect interpretation of []s as assembly style derefs in chained cases --- src/eval/eval_ir.c | 1 + src/eval/eval_parse.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index b3aa726c..da9157cb 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -574,6 +574,7 @@ E_TYPE_ACCESS_FUNCTION_DEF(default) // rjf: ops to compute the final address new_tree = e_irtree_binary_op_u(arena, RDI_EvalOp_Add, offset_tree, base_tree); + mode = E_Mode_Offset; } } diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index ed79b907..a82b01db 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -1023,7 +1023,7 @@ e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray t //////////////////////// //- rjf: descent to assembly-style dereference sub-expression [...] // - if(!got_new_atom) + if(atom == &e_expr_nil && !got_new_atom) { E_Token token = e_token_at_it(it, &tokens); String8 token_string = str8_substr(text, token.range);