mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
Merge pull request #11049 from mitchellh/peer-arrays
stage2: fix a couple issues with peer resolution and const casting arrays
This commit is contained in:
commit
0ea51f7f49
@ -18270,7 +18270,7 @@ fn resolvePeerTypes(
|
||||
|
||||
convert_to_slice = false;
|
||||
|
||||
if (chosen_ty.childType().isConstPtr() and !candidate_ty.childType().isConstPtr())
|
||||
if (chosen_ty.isConstPtr() and !candidate_ty.isConstPtr())
|
||||
seen_const = true;
|
||||
|
||||
continue;
|
||||
@ -18282,7 +18282,7 @@ fn resolvePeerTypes(
|
||||
chosen_ty_tag == .Pointer and
|
||||
chosen_ty.ptrSize() == .Many)
|
||||
{
|
||||
if (candidate_ty.childType().isConstPtr() and !chosen_ty.childType().isConstPtr())
|
||||
if (candidate_ty.isConstPtr() and !chosen_ty.isConstPtr())
|
||||
seen_const = true;
|
||||
|
||||
continue;
|
||||
@ -18303,7 +18303,7 @@ fn resolvePeerTypes(
|
||||
convert_to_slice = false; // it already is a slice
|
||||
|
||||
// If the pointer is const then we need to const
|
||||
if (candidate_ty.childType().isConstPtr())
|
||||
if (candidate_ty.isConstPtr())
|
||||
seen_const = true;
|
||||
|
||||
continue;
|
||||
@ -18326,7 +18326,7 @@ fn resolvePeerTypes(
|
||||
convert_to_slice = false; // it already is a slice
|
||||
|
||||
// If the prev pointer is const then we need to const
|
||||
if (chosen_child_ty.isConstPtr())
|
||||
if (chosen_ty.isConstPtr())
|
||||
seen_const = true;
|
||||
|
||||
continue;
|
||||
|
||||
@ -964,7 +964,11 @@ test "cast between C pointer with different but compatible types" {
|
||||
}
|
||||
|
||||
test "peer type resolve string lit with sentinel-terminated mutable slice" {
|
||||
if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||
|
||||
var array: [4:0]u8 = undefined;
|
||||
array[4] = 0; // TODO remove this when #4372 is solved
|
||||
@ -981,7 +985,11 @@ test "peer type resolve array pointers, one of them const" {
|
||||
}
|
||||
|
||||
test "peer type resolve array pointer and unknown pointer" {
|
||||
if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||
|
||||
const const_array: [4]u8 = undefined;
|
||||
var array: [4]u8 = undefined;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user