diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index da98c1c90124da3a71f92fb893ffada6dea9bf68..79e5c88050d32597736f112afd0d7b5b4e175ae0 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -5688,7 +5688,7 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { .val = typed_value.val, }); } else if (typed_value.ty.abiSize(self.target.*) == 1) { - return MCValue{ .immediate = @boolToInt(typed_value.val.isNull()) }; + return MCValue{ .immediate = @boolToInt(!typed_value.val.isNull()) }; } }, .Enum => { diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig index 9bdb0f35f63a9d4fb174f101f264b07952a60ea3..60eacfee5d36288c1853120f71a62db7ed03273c 100644 --- a/test/behavior/cast.zig +++ b/test/behavior/cast.zig @@ -179,7 +179,7 @@ test "@floatCast comptime_int and comptime_float" { test "coerce undefined to optional" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_x86_64 or builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; try expect(MakeType(void).getNull() == null); try expect(MakeType(void).getNonNull() != null);