#zig build-obj {
--name test -fno-emit-bin
-Mroot=test.zig
#}

#write test.zig {
export fn foo_array() void {
    comptime {
        var target = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        const slice = target[0..3 :0];
        _ = slice;
    }
}
export fn foo_ptr_array() void {
    comptime {
        var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        var target = &buf;
        const slice = target[0..3 :0];
        _ = slice;
    }
}
export fn foo_vector_ConstPtrSpecialBaseArray() void {
    comptime {
        var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        var target: [*]u8 = &buf;
        const slice = target[0..3 :0];
        _ = slice;
    }
}
export fn foo_vector_ConstPtrSpecialRef() void {
    comptime {
        var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        var target: [*]u8 = @ptrCast(&buf);
        const slice = target[0..3 :0];
        _ = slice;
    }
}
export fn foo_cvector_ConstPtrSpecialBaseArray() void {
    comptime {
        var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        var target: [*c]u8 = &buf;
        const slice = target[0..3 :0];
        _ = slice;
    }
}
export fn foo_cvector_ConstPtrSpecialRef() void {
    comptime {
        var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        var target: [*c]u8 = @ptrCast(&buf);
        const slice = target[0..3 :0];
        _ = slice;
    }
}
export fn foo_slice() void {
    comptime {
        var buf = [_]u8{ 'a', 'b', 'c', 'd' } ++ undef_10_u8;
        var target: []u8 = &buf;
        const slice = target[0..3 :0];
        _ = slice;
    }
}
const undef_10_u8: [10]u8 = @splat(undefined);
#}
#update
#check errors {
test.zig:4:29: error: value in memory does not match slice sentinel
test.zig:4:29: note: expected '0', found '100'
test.zig:12:29: error: value in memory does not match slice sentinel
test.zig:12:29: note: expected '0', found '100'
test.zig:20:29: error: value in memory does not match slice sentinel
test.zig:20:29: note: expected '0', found '100'
test.zig:28:29: error: value in memory does not match slice sentinel
test.zig:28:29: note: expected '0', found '100'
test.zig:36:29: error: value in memory does not match slice sentinel
test.zig:36:29: note: expected '0', found '100'
test.zig:44:29: error: value in memory does not match slice sentinel
test.zig:44:29: note: expected '0', found '100'
test.zig:52:29: error: value in memory does not match slice sentinel
test.zig:52:29: note: expected '0', found '100'
#}
