authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2021-05-07 11:33:48+02:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2021-05-11 12:33:48+02:00
logf4a05286d34d2360da5a76cf0c77697775b571eb
tree5e0b0b9049551e95a52b0f18ccf8e127c1b91591
parent93f48189f18c9e2a74c8385497a31cbec3059a79

std: Fix cast that's sometimes invalid


2 files changed, 8 insertions(+), 3 deletions(-)

lib/std/c/linux.zig+2-2
...@@ -61,11 +61,11 @@ pub const EAI = extern enum(c_int) {...@@ -61,11 +61,11 @@ pub const EAI = extern enum(c_int) {
61 _,61 _,
62};62};
6363
64pub extern "c" fn fallocate64(fd: fd_t, mode: c_int, offset: i64, len: i64) c_int;64pub extern "c" fn fallocate64(fd: fd_t, mode: c_int, offset: off_t, len: off_t) c_int;
65pub extern "c" fn fopen64(noalias filename: [*:0]const u8, noalias modes: [*:0]const u8) ?*FILE;65pub extern "c" fn fopen64(noalias filename: [*:0]const u8, noalias modes: [*:0]const u8) ?*FILE;
66pub extern "c" fn fstat64(fd: fd_t, buf: *libc_stat) c_int;66pub extern "c" fn fstat64(fd: fd_t, buf: *libc_stat) c_int;
67pub extern "c" fn fstatat64(dirfd: fd_t, path: [*:0]const u8, stat_buf: *libc_stat, flags: u32) c_int;67pub extern "c" fn fstatat64(dirfd: fd_t, path: [*:0]const u8, stat_buf: *libc_stat, flags: u32) c_int;
68pub extern "c" fn ftruncate64(fd: c_int, length: i64) c_int;68pub extern "c" fn ftruncate64(fd: c_int, length: off_t) c_int;
69pub extern "c" fn getrlimit64(resource: rlimit_resource, rlim: *rlimit) c_int;69pub extern "c" fn getrlimit64(resource: rlimit_resource, rlim: *rlimit) c_int;
70pub extern "c" fn lseek64(fd: fd_t, offset: u64, whence: c_int) u64;70pub extern "c" fn lseek64(fd: fd_t, offset: u64, whence: c_int) u64;
71pub extern "c" fn mmap64(addr: ?*align(std.mem.page_size) c_void, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: u64) *c_void;71pub extern "c" fn mmap64(addr: ?*align(std.mem.page_size) c_void, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: u64) *c_void;
lib/std/os.zig+6-1
...@@ -577,7 +577,12 @@ pub fn ftruncate(fd: fd_t, length: u64) TruncateError!void {...@@ -577,7 +577,12 @@ pub fn ftruncate(fd: fd_t, length: u64) TruncateError!void {
577 else577 else
578 system.ftruncate;578 system.ftruncate;
579579
580 switch (errno(ftruncate_sym(fd, @bitCast(off_t, length)))) {580 // XXX Pick a side and avoid this cast madness.
581 const casted_length = if (builtin.link_libc)
582 @bitCast(off_t, length)
583 else
584 length;
585 switch (errno(ftruncate_sym(fd, casted_length))) {
581 0 => return,586 0 => return,
582 EINTR => continue,587 EINTR => continue,
583 EFBIG => return error.FileTooBig,588 EFBIG => return error.FileTooBig,