From 2d6d2a1d11bfca780e559303904571a93bace86b Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Thu, 15 Jun 2023 01:30:06 -0400 Subject: [PATCH] cbe: add missing cast for `@intToPtr` values --- src/TypedValue.zig | 6 ++++-- src/codegen/c.zig | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/TypedValue.zig b/src/TypedValue.zig index ec76b52d20..9d3fb67d1f 100644 --- a/src/TypedValue.zig +++ b/src/TypedValue.zig @@ -345,12 +345,13 @@ pub fn print( try writer.print("[{}]", .{elem.index}); }, .field => |field| { - const container_ty = ip.typeOf(field.base).toType(); + const ptr_container_ty = ip.typeOf(field.base).toType(); try print(.{ - .ty = container_ty, + .ty = ptr_container_ty, .val = field.base.toValue(), }, writer, level - 1, mod); + const container_ty = ptr_container_ty.childType(mod); switch (container_ty.zigTypeTag(mod)) { .Struct => { if (container_ty.isTuple(mod)) { @@ -375,6 +376,7 @@ pub fn print( } }, } + return; }, .opt => |opt| switch (opt.val) { .none => return writer.writeAll("null"), diff --git a/src/codegen/c.zig b/src/codegen/c.zig index c1b7bd72b1..d06f01c2c3 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -596,9 +596,11 @@ pub const DeclGen = struct { }, location, ), - .int => |int| try writer.print("{x}", .{ - try dg.fmtIntLiteral(Type.usize, int.toValue(), .Other), - }), + .int => |int| { + try writer.writeByte('('); + try dg.renderCType(writer, ptr_cty); + try writer.print("){x}", .{try dg.fmtIntLiteral(Type.usize, int.toValue(), .Other)}); + }, .eu_payload, .opt_payload => |base| { const ptr_base_ty = mod.intern_pool.typeOf(base).toType(); const base_ty = ptr_base_ty.childType(mod);