diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/codegen/c.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 24b6ef6f44..f8fa2a1003 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -3030,6 +3030,11 @@ fn airStore(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll("(("); try f.renderTypecast(writer, host_ty); try writer.writeByte(')'); + if (src_ty.isPtrAtRuntime()) { + try writer.writeByte('('); + try f.renderTypecast(writer, Type.usize); + try writer.writeByte(')'); + } try f.writeCValue(writer, src_val, .Other); try writer.print(", {}))", .{try f.fmtIntLiteral(bit_offset_ty, bit_offset_val)}); } else { @@ -5121,6 +5126,14 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { try writer.writeAll("(("); try f.renderTypecast(writer, inst_ty); try writer.writeByte(')'); + if (field_ty.isPtrAtRuntime()) { + try writer.writeByte('('); + try f.renderTypecast(writer, switch (int_info.signedness) { + .unsigned => Type.usize, + .signed => Type.isize, + }); + try writer.writeByte(')'); + } try f.writeCValue(writer, try f.resolveInst(element), .Other); try writer.writeAll(", "); try f.object.dg.renderValue(writer, bit_offset_ty, bit_offset_val, .FunctionArgument); |
