zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit d9ce69dc3949fb11c43520096001b7f06e1a96f3 (tree)
parent 3ece9758574e600c1d97add143c24fefed3d2d82
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date:   Sat, 25 Mar 2023 02:37:31 -0400

codegen: fix ptr-like optional constants

Diffstat:
Msrc/codegen.zig | 5++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/codegen.zig b/src/codegen.zig @@ -1063,13 +1063,12 @@ pub fn genTypedValue( }, .Optional => { if (typed_value.ty.isPtrLikeOptional()) { - if (typed_value.val.isNull()) - return GenResult.mcv(.{ .immediate = 0 }); + if (typed_value.val.tag() == .null_value) return GenResult.mcv(.{ .immediate = 0 }); var buf: Type.Payload.ElemType = undefined; return genTypedValue(bin_file, src_loc, .{ .ty = typed_value.ty.optionalChild(&buf), - .val = typed_value.val, + .val = if (typed_value.val.castTag(.opt_payload)) |pl| pl.data else typed_value.val, }, owner_decl_index); } else if (typed_value.ty.abiSize(target) == 1) { return GenResult.mcv(.{ .immediate = @boolToInt(!typed_value.val.isNull()) });