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