stage2: test changed behavior of c pointer resolution from stage1

stage1 peer resolves the given test to `[*c]u8` but stage2 makes that a
const u8. I believe stage2 behavior is correct since the pointer itself
is const.
This commit is contained in:
Mitchell Hashimoto 2022-03-04 15:39:24 -08:00 committed by Andrew Kelley
parent f2a5d0bf94
commit e297860158

View File

@ -142,6 +142,15 @@ test "peer type resolution with C pointers" {
try expect(@TypeOf(x4) == [*c]u8);
}
test "peer type resolution with C pointer and const pointer" {
// stage1 incorrectly resolves to [*]u8
if (builtin.zig_backend == .stage1) return error.SkipZigTest;
var ptr_c: [*c]u8 = undefined;
const ptr_const: u8 = undefined;
try expect(@TypeOf(ptr_c, &ptr_const) == [*c]const u8);
}
test "implicit casting between C pointer and optional non-C pointer" {
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;