Commit 60bd13bdf2

Andrew Kelley <andrew@ziglang.org>
2023-04-13 00:17:41
never use C pointers!!
you maniacs, you absolute monsters. degenerates. hooligans. criminals. issue #2984 is coming for you.
1 parent 35f9c84
Changed files (3)
lib/compiler_rt/udivmodei4.zig
@@ -112,7 +112,7 @@ fn divmod(q: ?[]u32, r: ?[]u32, u: []const u32, v: []const u32) !void {
     }
 }
 
-pub fn __udivei4(r_q: [*c]u32, u_p: [*c]const u32, v_p: [*c]const u32, bits: usize) callconv(.C) void {
+pub fn __udivei4(r_q: [*]u32, u_p: [*]const u32, v_p: [*]const u32, bits: usize) callconv(.C) void {
     @setRuntimeSafety(builtin.is_test);
     const u = u_p[0 .. bits / 32];
     const v = v_p[0 .. bits / 32];
@@ -120,7 +120,7 @@ pub fn __udivei4(r_q: [*c]u32, u_p: [*c]const u32, v_p: [*c]const u32, bits: usi
     @call(.always_inline, divmod, .{ q, null, u, v }) catch unreachable;
 }
 
-pub fn __umodei4(r_p: [*c]u32, u_p: [*c]const u32, v_p: [*c]const u32, bits: usize) callconv(.C) void {
+pub fn __umodei4(r_p: [*]u32, u_p: [*]const u32, v_p: [*]const u32, bits: usize) callconv(.C) void {
     @setRuntimeSafety(builtin.is_test);
     const u = u_p[0 .. bits / 32];
     const v = v_p[0 .. bits / 32];
lib/std/c/dragonfly.zig
@@ -705,7 +705,7 @@ pub const Sigaction = extern struct {
     mask: sigset_t,
 };
 
-pub const sig_t = [*c]fn (c_int) callconv(.C) void;
+pub const sig_t = *const fn (c_int) callconv(.C) void;
 
 pub const SOCK = struct {
     pub const STREAM = 1;
@@ -890,7 +890,7 @@ pub const cmsghdr = extern struct {
 pub const msghdr = extern struct {
     msg_name: ?*anyopaque,
     msg_namelen: socklen_t,
-    msg_iov: [*c]iovec,
+    msg_iov: [*]iovec,
     msg_iovlen: c_int,
     msg_control: ?*anyopaque,
     msg_controllen: socklen_t,
@@ -905,9 +905,9 @@ pub const cmsgcred = extern struct {
     cmcred_groups: [16]gid_t,
 };
 pub const sf_hdtr = extern struct {
-    headers: [*c]iovec,
+    headers: [*]iovec,
     hdr_cnt: c_int,
-    trailers: [*c]iovec,
+    trailers: [*]iovec,
     trl_cnt: c_int,
 };
 
lib/std/start.zig
@@ -512,7 +512,7 @@ fn callMainWithArgs(argc: usize, argv: [*][*:0]u8, envp: [][*:0]u8) u8 {
     return initEventLoopAndCallMain();
 }
 
-fn main(c_argc: c_int, c_argv: [*c][*c]u8, c_envp: [*c][*c]u8) callconv(.C) c_int {
+fn main(c_argc: c_int, c_argv: [*][*:0]u8, c_envp: [*:null]?[*:0]u8) callconv(.C) c_int {
     var env_count: usize = 0;
     while (c_envp[env_count] != null) : (env_count += 1) {}
     const envp = @ptrCast([*][*:0]u8, c_envp)[0..env_count];
@@ -527,7 +527,7 @@ fn main(c_argc: c_int, c_argv: [*c][*c]u8, c_envp: [*c][*c]u8) callconv(.C) c_in
     return @call(.always_inline, callMainWithArgs, .{ @intCast(usize, c_argc), @ptrCast([*][*:0]u8, c_argv), envp });
 }
 
-fn mainWithoutEnv(c_argc: c_int, c_argv: [*c][*c]u8) callconv(.C) c_int {
+fn mainWithoutEnv(c_argc: c_int, c_argv: [*][*:0]u8) callconv(.C) c_int {
     std.os.argv = @ptrCast([*][*:0]u8, c_argv)[0..@intCast(usize, c_argc)];
     return @call(.always_inline, callMain, .{});
 }