From 091f43e8ef18ee82d5b4932b45a00ab44f9a677d Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 26 Dec 2024 18:08:30 -0500 Subject: Bugfix for lvalues that are pointers to tables/arrays --- compile.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compile.c b/compile.c index d4f8d4ab..94ef0513 100644 --- a/compile.c +++ b/compile.c @@ -3650,9 +3650,9 @@ CORD compile(env_t *env, ast_t *ast) code_err(ast, "Only pointers can use the '[]' operator to dereference the entire value."); auto ptr = Match(indexed_type, PointerType); if (ptr->pointed->tag == ArrayType) { - return CORD_all("({ Array_t *arr = ", compile(env, indexing->indexed), "; ARRAY_INCREF(*arr); *arr; })"); + return CORD_all("*({ Array_t *arr = ", compile(env, indexing->indexed), "; ARRAY_INCREF(*arr); arr; })"); } else if (ptr->pointed->tag == TableType || ptr->pointed->tag == SetType) { - return CORD_all("({ Table_t *t = ", compile(env, indexing->indexed), "; TABLE_INCREF(*t); *t; })"); + return CORD_all("*({ Table_t *t = ", compile(env, indexing->indexed), "; TABLE_INCREF(*t); t; })"); } else { return CORD_all("*(", compile(env, indexing->indexed), ")"); } -- cgit v1.2.3