diff --git a/lib/std/fs.zig b/lib/std/fs.zig index 7116d2fd9e..60ecff1fa3 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -609,7 +609,7 @@ pub const Dir = struct { const name_utf16le = @ptrCast([*]u16, &dir_info.FileName)[0 .. dir_info.FileNameLength / 2]; - if (mem.eql(u16, name_utf16le, [_]u16{'.'}) or mem.eql(u16, name_utf16le, [_]u16{ '.', '.' })) + if (mem.eql(u16, name_utf16le, &[_]u16{'.'}) or mem.eql(u16, name_utf16le, &[_]u16{ '.', '.' })) continue; // Trust that Windows gives us valid UTF-16LE const name_utf8_len = std.unicode.utf16leToUtf8(self.name_data[0..], name_utf16le) catch unreachable; diff --git a/lib/std/os.zig b/lib/std/os.zig index f083fabb6d..d137617b89 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -2633,7 +2633,7 @@ pub fn realpathW(pathname: [*:0]const u16, out_buffer: *[MAX_PATH_BYTES]u8) Real // Windows returns \\?\ prepended to the path. // We strip it to make this function consistent across platforms. const prefix = [_]u16{ '\\', '\\', '?', '\\' }; - const start_index = if (mem.startsWith(u16, wide_slice, prefix)) prefix.len else 0; + const start_index = if (mem.startsWith(u16, wide_slice, &prefix)) prefix.len else 0; // Trust that Windows gives us valid UTF-16LE. const end_index = std.unicode.utf16leToUtf8(out_buffer, wide_slice[start_index..]) catch unreachable; diff --git a/test/cli.zig b/test/cli.zig index 0820870412..b36742566a 100644 --- a/test/cli.zig +++ b/test/cli.zig @@ -26,9 +26,9 @@ pub fn main() !void { std.debug.warn("Expected second argument to be cache root directory path\n"); return error.InvalidArgs; }); - const zig_exe = try fs.path.resolve(a, [_][]const u8{zig_exe_rel}); + const zig_exe = try fs.path.resolve(a, &[_][]const u8{zig_exe_rel}); - const dir_path = try fs.path.join(a, [_][]const u8{ cache_root, "clitest" }); + const dir_path = try fs.path.join(a, &[_][]const u8{ cache_root, "clitest" }); const TestFn = fn ([]const u8, []const u8) anyerror!void; const test_fns = [_]TestFn{ testZigInitLib, @@ -85,22 +85,22 @@ fn exec(cwd: []const u8, argv: []const []const u8) !ChildProcess.ExecResult { } fn testZigInitLib(zig_exe: []const u8, dir_path: []const u8) !void { - _ = try exec(dir_path, [_][]const u8{ zig_exe, "init-lib" }); - const test_result = try exec(dir_path, [_][]const u8{ zig_exe, "build", "test" }); + _ = try exec(dir_path, &[_][]const u8{ zig_exe, "init-lib" }); + const test_result = try exec(dir_path, &[_][]const u8{ zig_exe, "build", "test" }); testing.expect(std.mem.endsWith(u8, test_result.stderr, "All 1 tests passed.\n")); } fn testZigInitExe(zig_exe: []const u8, dir_path: []const u8) !void { - _ = try exec(dir_path, [_][]const u8{ zig_exe, "init-exe" }); - const run_result = try exec(dir_path, [_][]const u8{ zig_exe, "build", "run" }); + _ = try exec(dir_path, &[_][]const u8{ zig_exe, "init-exe" }); + const run_result = try exec(dir_path, &[_][]const u8{ zig_exe, "build", "run" }); testing.expect(std.mem.eql(u8, run_result.stderr, "All your base are belong to us.\n")); } fn testGodboltApi(zig_exe: []const u8, dir_path: []const u8) anyerror!void { if (builtin.os != .linux or builtin.arch != .x86_64) return; - const example_zig_path = try fs.path.join(a, [_][]const u8{ dir_path, "example.zig" }); - const example_s_path = try fs.path.join(a, [_][]const u8{ dir_path, "example.s" }); + const example_zig_path = try fs.path.join(a, &[_][]const u8{ dir_path, "example.zig" }); + const example_s_path = try fs.path.join(a, &[_][]const u8{ dir_path, "example.s" }); try std.io.writeFile(example_zig_path, \\// Type your code here, or load an example. @@ -123,7 +123,7 @@ fn testGodboltApi(zig_exe: []const u8, dir_path: []const u8) anyerror!void { "--strip", "--release-fast", example_zig_path, "--disable-gen-h", }; - _ = try exec(dir_path, args); + _ = try exec(dir_path, &args); const out_asm = try std.io.readFileAlloc(a, example_s_path); testing.expect(std.mem.indexOf(u8, out_asm, "square:") != null); @@ -132,10 +132,10 @@ fn testGodboltApi(zig_exe: []const u8, dir_path: []const u8) anyerror!void { } fn testMissingOutputPath(zig_exe: []const u8, dir_path: []const u8) !void { - _ = try exec(dir_path, [_][]const u8{ zig_exe, "init-exe" }); - const output_path = try fs.path.join(a, [_][]const u8{ "does", "not", "exist" }); - const source_path = try fs.path.join(a, [_][]const u8{ "src", "main.zig" }); - _ = try exec(dir_path, [_][]const u8{ + _ = try exec(dir_path, &[_][]const u8{ zig_exe, "init-exe" }); + const output_path = try fs.path.join(a, &[_][]const u8{ "does", "not", "exist" }); + const source_path = try fs.path.join(a, &[_][]const u8{ "src", "main.zig" }); + _ = try exec(dir_path, &[_][]const u8{ zig_exe, "build-exe", source_path, "--output-dir", output_path, }); } diff --git a/test/runtime_safety.zig b/test/runtime_safety.zig index d278407ee1..045326ffd4 100644 --- a/test/runtime_safety.zig +++ b/test/runtime_safety.zig @@ -261,7 +261,7 @@ pub fn addCases(cases: *tests.CompareOutputContext) void { \\} \\pub fn main() void { \\ const a = [_]i32{1, 2, 3, 4}; - \\ baz(bar(a)); + \\ baz(bar(&a)); \\} \\fn bar(a: []const i32) i32 { \\ return a[4]; @@ -471,7 +471,7 @@ pub fn addCases(cases: *tests.CompareOutputContext) void { \\ @import("std").os.exit(126); \\} \\pub fn main() !void { - \\ const x = widenSlice([_]u8{1, 2, 3, 4, 5}); + \\ const x = widenSlice(&[_]u8{1, 2, 3, 4, 5}); \\ if (x.len == 0) return error.Whatever; \\} \\fn widenSlice(slice: []align(1) const u8) []align(1) const i32 { diff --git a/test/stage1/behavior/array.zig b/test/stage1/behavior/array.zig index 1d51f822d0..49419f15f1 100644 --- a/test/stage1/behavior/array.zig +++ b/test/stage1/behavior/array.zig @@ -360,3 +360,9 @@ test "access the null element of a null terminated array" { S.doTheTest(); comptime S.doTheTest(); } + +test "type coerce sentinel-terminated array to non-sentinel-terminated array" { + var array: [2]u8 = [_:255]u8{1, 2}; + expect(array[0] == 1); + expect(array[1] == 2); +} diff --git a/test/stage1/c_abi/build.zig b/test/stage1/c_abi/build.zig index c2a270ec34..cf21d403f7 100644 --- a/test/stage1/c_abi/build.zig +++ b/test/stage1/c_abi/build.zig @@ -4,7 +4,7 @@ pub fn build(b: *Builder) void { const rel_opts = b.standardReleaseOptions(); const c_obj = b.addObject("cfuncs", null); - c_obj.addCSourceFile("cfuncs.c", [_][]const u8{"-std=c99"}); + c_obj.addCSourceFile("cfuncs.c", &[_][]const u8{"-std=c99"}); c_obj.setBuildMode(rel_opts); c_obj.linkSystemLibrary("c"); diff --git a/test/stage1/c_abi/main.zig b/test/stage1/c_abi/main.zig index f9de9fecb7..3c2b731524 100644 --- a/test/stage1/c_abi/main.zig +++ b/test/stage1/c_abi/main.zig @@ -124,7 +124,7 @@ test "C ABI array" { } export fn zig_array(x: [10]u8) void { - expect(std.mem.eql(u8, x, "1234567890")); + expect(std.mem.eql(u8, &x, "1234567890")); } const BigStruct = extern struct { diff --git a/test/standalone/mix_o_files/build.zig b/test/standalone/mix_o_files/build.zig index 7c72cfcc3a..d498e2e20a 100644 --- a/test/standalone/mix_o_files/build.zig +++ b/test/standalone/mix_o_files/build.zig @@ -4,7 +4,7 @@ pub fn build(b: *Builder) void { const obj = b.addObject("base64", "base64.zig"); const exe = b.addExecutable("test", null); - exe.addCSourceFile("test.c", [_][]const u8{"-std=c99"}); + exe.addCSourceFile("test.c", &[_][]const u8{"-std=c99"}); exe.addObject(obj); exe.linkSystemLibrary("c"); diff --git a/test/standalone/shared_library/build.zig b/test/standalone/shared_library/build.zig index 129c5dc1c9..cb7437bcaa 100644 --- a/test/standalone/shared_library/build.zig +++ b/test/standalone/shared_library/build.zig @@ -4,7 +4,7 @@ pub fn build(b: *Builder) void { const lib = b.addSharedLibrary("mathtest", "mathtest.zig", b.version(1, 0, 0)); const exe = b.addExecutable("test", null); - exe.addCSourceFile("test.c", [_][]const u8{"-std=c99"}); + exe.addCSourceFile("test.c", &[_][]const u8{"-std=c99"}); exe.linkLibrary(lib); exe.linkSystemLibrary("c"); diff --git a/test/standalone/static_c_lib/build.zig b/test/standalone/static_c_lib/build.zig index 4af00705a8..2b604f5c0f 100644 --- a/test/standalone/static_c_lib/build.zig +++ b/test/standalone/static_c_lib/build.zig @@ -4,7 +4,7 @@ pub fn build(b: *Builder) void { const mode = b.standardReleaseOptions(); const foo = b.addStaticLibrary("foo", null); - foo.addCSourceFile("foo.c", [_][]const u8{}); + foo.addCSourceFile("foo.c", &[_][]const u8{}); foo.setBuildMode(mode); foo.addIncludeDir(".");