From 0924f17a234c48c4a7a17e44a1ffac6a9026d5e5 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 3 Mar 2022 11:04:04 -0800 Subject: [PATCH] stage2: peer resolve const u8 slices correctly --- src/Sema.zig | 4 ++-- test/behavior/cast.zig | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Sema.zig b/src/Sema.zig index 998efadcef..a0908cf985 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -18230,7 +18230,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; @@ -18253,7 +18253,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; diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig index bc120d6697..ef24f25ecf 100644 --- a/test/behavior/cast.zig +++ b/test/behavior/cast.zig @@ -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