diff options
| author | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-17 00:58:40 +0000 |
|---|---|---|
| committer | Zuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian> | 2026-01-17 00:58:40 +0000 |
| commit | f026d721ef6e1708b4ec28fdb68179cb7dda75d0 (patch) | |
| tree | 99188b356b09e7f490f4328fd65f032d6a8382d1 | |
| parent | ea160abc678e9578b5e140121a6d7c59a3b9dd06 (diff) | |
Modify codegen to add a dummy member for empty structs.
| -rw-r--r-- | src/codegen/codegen_decl.c | 10 |
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) |
