diff --git a/src/c_vec.rs b/src/c_vec.rs index e5e35af527..6a85a674b2 100644 --- a/src/c_vec.rs +++ b/src/c_vec.rs @@ -200,7 +200,7 @@ impl<'a, T> IntoIterator for &'a CVec { type Item = <&'a [T] as IntoIterator>::Item; type IntoIter = <&'a [T] as IntoIterator>::IntoIter; fn into_iter(self) -> Self::IntoIter { - <&[T]>::into_iter(&*self) + <&[T]>::into_iter(self) } } impl<'a, T> IntoIterator for &'a mut CVec { diff --git a/src/header/grp/mod.rs b/src/header/grp/mod.rs index 1f5ef44a6f..afe3599bb8 100644 --- a/src/header/grp/mod.rs +++ b/src/header/grp/mod.rs @@ -449,7 +449,7 @@ pub unsafe extern "C" fn getgrent() -> *mut group { #[unsafe(no_mangle)] pub unsafe extern "C" fn endgrent() { unsafe { - *(&mut *LINE_READER.get()) = None; + *LINE_READER.get() = None; } } diff --git a/src/header/netdb/dns/mod.rs b/src/header/netdb/dns/mod.rs index 9d7e44bd1c..fdf4014ca7 100644 --- a/src/header/netdb/dns/mod.rs +++ b/src/header/netdb/dns/mod.rs @@ -59,7 +59,7 @@ impl Dns { } pub fn parse(data: &[u8]) -> Result { - let name_ind = 0b1100_0000; + let name_ind = 0b1100_0000u8; let mut i = 0; macro_rules! pop_u8 { @@ -106,7 +106,7 @@ impl Dns { let name_len = pop_u8!(); if name_len & name_ind == name_ind { i -= 1; - i = (pop_n16!() - ((name_ind as u16) << 8)) as usize; + i = (pop_n16!() - ((u16::from(name_ind)) << 8)) as usize; continue; } if name_len == 0 { diff --git a/src/header/netdb/lookup.rs b/src/header/netdb/lookup.rs index 0734eec668..f32805f8cf 100644 --- a/src/header/netdb/lookup.rs +++ b/src/header/netdb/lookup.rs @@ -63,7 +63,7 @@ pub fn lookup_host(host: &str) -> Result { let packet_data_len = packet_data.len(); let packet_data_box = packet_data.into_boxed_slice(); - let packet_data_ptr = Box::into_raw(packet_data_box) as *mut _ as *mut c_void; + let packet_data_ptr = Box::into_raw(packet_data_box).cast::(); let dest = sockaddr_in { sin_family: AF_INET as u16, @@ -164,7 +164,7 @@ pub fn lookup_addr(addr: in_addr) -> Result>, c_int> { let packet_data = packet.compile(); let packet_data_len = packet_data.len(); let packet_data_box = packet_data.into_boxed_slice(); - let packet_data_ptr = Box::into_raw(packet_data_box) as *mut _ as *mut c_void; + let packet_data_ptr = Box::into_raw(packet_data_box).cast::(); let dest = sockaddr_in { sin_family: AF_INET as u16, diff --git a/src/header/poll/mod.rs b/src/header/poll/mod.rs index f79c59f05e..6e55399aba 100644 --- a/src/header/poll/mod.rs +++ b/src/header/poll/mod.rs @@ -203,7 +203,7 @@ pub unsafe extern "C" fn ppoll( -1 } else { let tmo = unsafe { &*tmo_p }; - if tmo.tv_sec > (c_int::MAX / 1000) as _ { + if tmo.tv_sec > (c_int::MAX / 1000).into() { c_int::MAX } else { ((tmo.tv_sec as c_int) * 1000) + ((tmo.tv_nsec as c_int) / 1000000) diff --git a/src/header/stdio/mod.rs b/src/header/stdio/mod.rs index a1d43be6c4..b5ea3a648e 100644 --- a/src/header/stdio/mod.rs +++ b/src/header/stdio/mod.rs @@ -1275,8 +1275,7 @@ pub unsafe extern "C" fn tempnam(dir: *const c_char, pfx: *const c_char) -> *mut [tmpdir, dir, P_tmpdir.as_ptr().cast()] .iter() .copied() - .skip_while(|&d| !unsafe { is_appropriate(d) }) - .next() + .find(|&d| unsafe { is_appropriate(d) }) .unwrap_or(c"/tmp".as_ptr().cast()) }; let dirname_len = unsafe { string::strlen(dirname) }; diff --git a/src/header/stdlib/mod.rs b/src/header/stdlib/mod.rs index 423ee954c4..efab8cd7cf 100644 --- a/src/header/stdlib/mod.rs +++ b/src/header/stdlib/mod.rs @@ -920,10 +920,10 @@ pub unsafe extern "C" fn posix_memalign( #[unsafe(no_mangle)] pub unsafe extern "C" fn posix_openpt(flags: c_int) -> c_int { #[cfg(target_os = "redox")] - let r = unsafe { open((b"/scheme/pty\0" as *const u8).cast(), O_CREAT) }; + let r = unsafe { open(c"/scheme/pty".as_ptr(), O_CREAT) }; #[cfg(target_os = "linux")] - let r = unsafe { open((b"/dev/ptmx\0" as *const u8).cast(), flags) }; + let r = unsafe { open(c"/dev/ptmx".as_ptr(), flags) }; if r < 0 && platform::ERRNO.get() == ENOSPC { platform::ERRNO.set(EAGAIN); diff --git a/src/header/unistd/mod.rs b/src/header/unistd/mod.rs index f80965dbe9..c4058d3d05 100644 --- a/src/header/unistd/mod.rs +++ b/src/header/unistd/mod.rs @@ -1261,7 +1261,7 @@ unsafe fn with_argv( // NULL unsafe { va.arg::<*const c_char>() }; - f(unsafe { (&*out).assume_init_ref() }, va); + f(unsafe { out.assume_init_ref() }, va); // f only returns if it fails if argc >= 32 { diff --git a/src/header/wchar/mod.rs b/src/header/wchar/mod.rs index fa4ff454f3..30c803a3f7 100644 --- a/src/header/wchar/mod.rs +++ b/src/header/wchar/mod.rs @@ -1040,7 +1040,7 @@ pub unsafe extern "C" fn vfwscanf( unsafe { let format = WStr::from_ptr(format); - wscanf::scanf(reader, format.into(), __valist) + wscanf::scanf(reader, format, __valist) } } diff --git a/src/ld_so/dso.rs b/src/ld_so/dso.rs index afb4c7c1e6..3bf4a833cb 100644 --- a/src/ld_so/dso.rs +++ b/src/ld_so/dso.rs @@ -775,7 +775,7 @@ impl DSO { let strtab_size = strtab_size.expect("mandatory DT_STRSZ not present"); let dynstrtab = StringTable::new( - &*mmap, + mmap, strtab_offset as u64, strtab_offset as u64 + strtab_size as u64, ); diff --git a/src/platform/linux/mod.rs b/src/platform/linux/mod.rs index 995df1b2d3..a33576e5f6 100644 --- a/src/platform/linux/mod.rs +++ b/src/platform/linux/mod.rs @@ -164,7 +164,7 @@ impl Pal for Sys { unsafe { syscall!(EXIT, status); } - loop {} + unreachable!(); } unsafe fn exit_thread(_stack_base: *mut (), _stack_size: usize) -> ! { // TODO