| author | |
| committer | |
| log | 071404ff6500d26c3f8c5b08645bd90ebb3a901b |
| tree | dc30280256197634a6b974f55d5dc4d7e06366bb |
| parent | 8e52be1602f0b7953332d2e5e9a2b6f23e5410ce |
3 files changed, 3 insertions(+), 5 deletions(-)
src/codegen/c.zig+3-3| ... | ... | @@ -3193,7 +3193,7 @@ fn airEquality( |
| 3193 | 3193 | |
| 3194 | 3194 | try writer.writeAll(" = "); |
| 3195 | 3195 | |
| 3196 | if (operand_ty.tag() == .optional) { | |
| 3196 | if (operand_ty.zigTypeTag() == .Optional and !operand_ty.isPtrLikeOptional()) { | |
| 3197 | 3197 | // (A && B) || (C && (A == B)) |
| 3198 | 3198 | // A = lhs.is_null ; B = rhs.is_null ; C = rhs.payload == lhs.payload |
| 3199 | 3199 | |
| ... | ... | @@ -3984,9 +3984,9 @@ fn airIsNull( |
| 3984 | 3984 | |
| 3985 | 3985 | const rhs = if (!payload_ty.hasRuntimeBitsIgnoreComptime()) |
| 3986 | 3986 | TypedValue{ .ty = Type.bool, .val = Value.@"true" } |
| 3987 | else if (operand_ty.isPtrLikeOptional()) | |
| 3987 | else if (optional_ty.isPtrLikeOptional()) | |
| 3988 | 3988 | // operand is a regular pointer, test `operand !=/== NULL` |
| 3989 | TypedValue{ .ty = operand_ty, .val = Value.@"null" } | |
| 3989 | TypedValue{ .ty = optional_ty, .val = Value.@"null" } | |
| 3990 | 3990 | else if (payload_ty.zigTypeTag() == .ErrorSet) |
| 3991 | 3991 | TypedValue{ .ty = payload_ty, .val = Value.zero } |
| 3992 | 3992 | else if (payload_ty.isSlice() and optional_ty.optionalReprIsPayload()) rhs: { |
test/behavior/bugs/1851.zig-1| ... | ... | @@ -5,7 +5,6 @@ const expect = std.testing.expect; |
| 5 | 5 | test "allocation and looping over 3-byte integer" { |
| 6 | 6 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 7 | 7 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 8 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 9 | 8 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 10 | 9 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 11 | 10 |
test/behavior/cast.zig-1| ... | ... | @@ -1178,7 +1178,6 @@ fn cast128Float(x: u128) f128 { |
| 1178 | 1178 | |
| 1179 | 1179 | test "implicit cast from *[N]T to ?[*]T" { |
| 1180 | 1180 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 1181 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1182 | 1181 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1183 | 1182 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1184 | 1183 |