mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 09:44:08 +00:00
Ignore unnecessary unsafe warnings
This is a work-around for a libc issue: https://github.com/rust-lang/libc/issues/1888.
This commit is contained in:
parent
7c3e1ffd7a
commit
c394624471
@ -6,7 +6,6 @@ mod tests;
|
|||||||
use crate::cmp;
|
use crate::cmp;
|
||||||
use crate::io::{self, Initializer, IoSlice, IoSliceMut, Read};
|
use crate::io::{self, Initializer, IoSlice, IoSliceMut, Read};
|
||||||
use crate::mem;
|
use crate::mem;
|
||||||
#[cfg(not(any(target_os = "redox", target_env = "newlib")))]
|
|
||||||
use crate::sys::cvt;
|
use crate::sys::cvt;
|
||||||
use crate::sys_common::AsInner;
|
use crate::sys_common::AsInner;
|
||||||
|
|
||||||
|
@ -459,7 +459,15 @@ impl ExitStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn exited(&self) -> bool {
|
fn exited(&self) -> bool {
|
||||||
unsafe { libc::WIFEXITED(self.0) }
|
// On Linux-like OSes this function is safe, on others it is not. See
|
||||||
|
// libc issue: https://github.com/rust-lang/libc/issues/1888.
|
||||||
|
#[cfg_attr(
|
||||||
|
any(target_os = "linux", target_os = "android", target_os = "emscripten"),
|
||||||
|
allow(unused_unsafe)
|
||||||
|
)]
|
||||||
|
unsafe {
|
||||||
|
libc::WIFEXITED(self.0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn success(&self) -> bool {
|
pub fn success(&self) -> bool {
|
||||||
@ -467,10 +475,22 @@ impl ExitStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn code(&self) -> Option<i32> {
|
pub fn code(&self) -> Option<i32> {
|
||||||
|
// On Linux-like OSes this function is safe, on others it is not. See
|
||||||
|
// libc issue: https://github.com/rust-lang/libc/issues/1888.
|
||||||
|
#[cfg_attr(
|
||||||
|
any(target_os = "linux", target_os = "android", target_os = "emscripten"),
|
||||||
|
allow(unused_unsafe)
|
||||||
|
)]
|
||||||
if self.exited() { Some(unsafe { libc::WEXITSTATUS(self.0) }) } else { None }
|
if self.exited() { Some(unsafe { libc::WEXITSTATUS(self.0) }) } else { None }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn signal(&self) -> Option<i32> {
|
pub fn signal(&self) -> Option<i32> {
|
||||||
|
// On Linux-like OSes this function is safe, on others it is not. See
|
||||||
|
// libc issue: https://github.com/rust-lang/libc/issues/1888.
|
||||||
|
#[cfg_attr(
|
||||||
|
any(target_os = "linux", target_os = "android", target_os = "emscripten"),
|
||||||
|
allow(unused_unsafe)
|
||||||
|
)]
|
||||||
if !self.exited() { Some(unsafe { libc::WTERMSIG(self.0) }) } else { None }
|
if !self.exited() { Some(unsafe { libc::WTERMSIG(self.0) }) } else { None }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user