summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-17 00:58:40 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-17 00:58:40 +0000
commitf026d721ef6e1708b4ec28fdb68179cb7dda75d0 (patch)
tree99188b356b09e7f490f4328fd65f032d6a8382d1 /src
parentea160abc678e9578b5e140121a6d7c59a3b9dd06 (diff)
Modify codegen to add a dummy member for empty structs.
Diffstat (limited to 'src')
-rw-r--r--src/codegen/codegen_decl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/codegen/codegen_decl.c b/src/codegen/codegen_decl.c
index 18e6987..0ee4cd6 100644
--- a/src/codegen/codegen_decl.c
+++ b/src/codegen/codegen_decl.c
@@ -273,7 +273,15 @@ void emit_struct_defs(ParserContext *ctx, ASTNode *node, FILE *out)
fprintf(out, "struct %s {", node->strct.name);
}
fprintf(out, "\n");
- codegen_walker(ctx, node->strct.fields, out);
+ if (node->strct.fields)
+ {
+ codegen_walker(ctx, node->strct.fields, out);
+ }
+ else
+ {
+ // C requires at least one member in a struct.
+ fprintf(out, " char _placeholder;\n");
+ }
fprintf(out, "}");
if (node->strct.is_packed && node->strct.align)