From 7704a95a0b904d90fd5793eccdab38dfcf678ac8 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 25 Feb 2024 12:20:25 -0500 Subject: Implement obj[] --- compile.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'compile.c') diff --git a/compile.c b/compile.c index b5d2b03c..6607c1b4 100644 --- a/compile.c +++ b/compile.c @@ -870,7 +870,11 @@ CORD compile(env_t *env, ast_t *ast) } case Index: { auto indexing = Match(ast, Index); - type_t *container_t = value_type(get_type(env, indexing->indexed)); + type_t *indexed_type = get_type(env, indexing->indexed); + if (!indexing->index && indexed_type->tag == PointerType) { + return CORD_all("*(", compile(env, indexing->indexed), ")"); + } + type_t *container_t = value_type(indexed_type); type_t *index_t = get_type(env, indexing->index); switch (container_t->tag) { case ArrayType: { -- cgit v1.2.3