authorgravatar for mitchell.hashimoto@gmail.comMitchell Hashimoto <mitchell.hashimoto@gmail.com> 2022-03-03 11:08:14-08:00
committergravatar for mitchell.hashimoto@gmail.comMitchell Hashimoto <mitchell.hashimoto@gmail.com> 2022-03-03 11:08:14-08:00
logb96d5fd71f12a56ba97c6ca36e47a7cbceee9696
tree1b067bed06d0a7abe46bc56a98d8b39bfb1b0cb2
parent0924f17a234c48c4a7a17e44a1ffac6a9026d5e5
signaturelock-open Commit is signed but in an unrecognized format.

stage2: peer resolve const array pointer to unknown ptr


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

src/Sema.zig+2-2
...@@ -18197,7 +18197,7 @@ fn resolvePeerTypes(...@@ -18197,7 +18197,7 @@ fn resolvePeerTypes(
1819718197
18198 convert_to_slice = false;18198 convert_to_slice = false;
1819918199
18200 if (chosen_ty.childType().isConstPtr() and !candidate_ty.childType().isConstPtr())18200 if (chosen_ty.isConstPtr() and !candidate_ty.isConstPtr())
18201 seen_const = true;18201 seen_const = true;
1820218202
18203 continue;18203 continue;
...@@ -18209,7 +18209,7 @@ fn resolvePeerTypes(...@@ -18209,7 +18209,7 @@ fn resolvePeerTypes(
18209 chosen_ty_tag == .Pointer and18209 chosen_ty_tag == .Pointer and
18210 chosen_ty.ptrSize() == .Many)18210 chosen_ty.ptrSize() == .Many)
18211 {18211 {
18212 if (candidate_ty.childType().isConstPtr() and !chosen_ty.childType().isConstPtr())18212 if (candidate_ty.isConstPtr() and !chosen_ty.isConstPtr())
18213 seen_const = true;18213 seen_const = true;
1821418214
18215 continue;18215 continue;
test/behavior/cast.zig+5-1
...@@ -985,7 +985,11 @@ test "peer type resolve array pointers, one of them const" {...@@ -985,7 +985,11 @@ test "peer type resolve array pointers, one of them const" {
985}985}
986986
987test "peer type resolve array pointer and unknown pointer" {987test "peer type resolve array pointer and unknown pointer" {
988 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO988 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
989 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
990 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
991 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
992 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
989993
990 const const_array: [4]u8 = undefined;994 const const_array: [4]u8 = undefined;
991 var array: [4]u8 = undefined;995 var array: [4]u8 = undefined;