diff options
Diffstat (limited to 'src/codegen/codegen_decl.c')
| -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) |
