From 2a7cfd7c3665c441c25094c12bde02ddc565061c Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 3 Mar 2024 15:14:59 -0500 Subject: Fix table literal issue for TCC compatibility --- builtins/table.h | 3 ++- compile.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/builtins/table.h b/builtins/table.h index 14a97977..436eaf42 100644 --- a/builtins/table.h +++ b/builtins/table.h @@ -8,7 +8,8 @@ #include "array.h" #define $Table(key_t, val_t, key_info, value_info, fb, def, ...) ({ \ - struct { key_t k; val_t v; } $ents[] = {__VA_ARGS__}; \ + struct $entry_s { key_t k; val_t v; }; \ + struct $entry_s $ents[] = {__VA_ARGS__}; \ table_t $table = Table_from_entries((array_t){ \ .data=memcpy(GC_MALLOC(sizeof($ents)), $ents, sizeof($ents)), \ .length=sizeof($ents)/sizeof($ents[0]), \ diff --git a/compile.c b/compile.c index 4ca5cbb0..31e451be 100644 --- a/compile.c +++ b/compile.c @@ -567,7 +567,7 @@ CORD compile(env_t *env, ast_t *ast) for (ast_list_t *entry = table->entries; entry; entry = entry->next) { auto e = Match(entry->ast, TableEntry); - code = CORD_all(code, ",\n\t{", compile(env, e->key), ", ", compile(env, e->value), "}"); + code = CORD_all(code, ",\n\t(struct $entry_s){", compile(env, e->key), ", ", compile(env, e->value), "}"); } return CORD_cat(code, ")"); -- cgit v1.2.3