authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-03-25 02:37:31-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-03-25 16:23:55-04:00
logd9ce69dc3949fb11c43520096001b7f06e1a96f3
tree52924672c6b62c907ad742c42ceaf1a92a34e1f2
parent3ece9758574e600c1d97add143c24fefed3d2d82

codegen: fix ptr-like optional constants


1 files changed, 2 insertions(+), 3 deletions(-)

src/codegen.zig+2-3
......@@ -1063,13 +1063,12 @@ pub fn genTypedValue(
10631063 },
10641064 .Optional => {
10651065 if (typed_value.ty.isPtrLikeOptional()) {
1066 if (typed_value.val.isNull())
1067 return GenResult.mcv(.{ .immediate = 0 });
1066 if (typed_value.val.tag() == .null_value) return GenResult.mcv(.{ .immediate = 0 });
10681067
10691068 var buf: Type.Payload.ElemType = undefined;
10701069 return genTypedValue(bin_file, src_loc, .{
10711070 .ty = typed_value.ty.optionalChild(&buf),
1072 .val = typed_value.val,
1071 .val = if (typed_value.val.castTag(.opt_payload)) |pl| pl.data else typed_value.val,
10731072 }, owner_decl_index);
10741073 } else if (typed_value.ty.abiSize(target) == 1) {
10751074 return GenResult.mcv(.{ .immediate = @boolToInt(!typed_value.val.isNull()) });