aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-12-03 19:41:35 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-12-04 15:57:40 -0700
commit701cebeb30252abb59505e8c03a8b762f16c452f (patch)
treebd98b39b2f883e6218397308273e619e7218f8b3 /src/codegen
parentaa98517b3e4df84eb28fe1f3352e34407ef51343 (diff)
downloadzig-701cebeb30252abb59505e8c03a8b762f16c452f.tar.gz
zig-701cebeb30252abb59505e8c03a8b762f16c452f.zip
CBE: fix union init wrong field name
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/c.zig7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index d2ea876065..adc4035482 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -6436,10 +6436,15 @@ fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue {
try f.writeCValue(writer, local, .Other);
try writer.print(".tag = {}; ", .{try f.fmtIntLiteral(tag_ty, int_val)});
}
+ try f.writeCValue(writer, local, .Other);
+ try writer.print(".payload.{ } = ", .{fmtIdent(field_name)});
+ try f.writeCValue(writer, payload, .Other);
+ try writer.writeAll(";\n");
+ return local;
}
try f.writeCValue(writer, local, .Other);
- try writer.print(".payload.{ } = ", .{fmtIdent(field_name)});
+ try writer.print(".{ } = ", .{fmtIdent(field_name)});
try f.writeCValue(writer, payload, .Other);
try writer.writeAll(";\n");