summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)