Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #129398

Merged
merged 18 commits into from
Aug 22, 2024
Merged
Changes from 2 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
8a61674
WASI fixing unsafe_op_in_unsafe_fn for std::{os, sys}
g0djan Aug 5, 2024
40f1d9d
Add missing module flags for CFI and KCFI sanitizers
samitolvanen Aug 16, 2024
191862d
Use `assert_unsafe_precondition!` in `AsciiChar::digit_unchecked`
ChaiTRex Aug 21, 2024
c836739
Change `assert_unsafe_precondition` docs to refer to `check_language_ub`
ChaiTRex Aug 21, 2024
81c00dd
Add `const_cell_into_inner` to `OnceCell`
tgross35 Aug 21, 2024
7232a07
Explain the `run-make/debugger-visualizer-dep-info` Python script
Zalathar Aug 22, 2024
5fc562c
Rename `foo.py` to `my_gdb_script.py`
Zalathar Aug 22, 2024
34cdfc9
Advise against removing `run-make/libtest-junit/validate_junit.py`
Zalathar Aug 22, 2024
ca7c55f
Do not rely on names to find lifetimes.
cjgillot Aug 22, 2024
080c2ca
Pretty-print own args of existential projections
fmease Aug 22, 2024
a8d5c6d
Rollup merge of #128432 - g0djan:godjan/wasi_prohibit_implicit_unsafe…
matthiaskrgr Aug 22, 2024
8f2c4d1
Rollup merge of #129373 - samitolvanen:cfi-module-flags, r=compiler-e…
matthiaskrgr Aug 22, 2024
e7df7ba
Rollup merge of #129374 - ChaiTRex:digit_unchecked_assert_unsafe_prec…
matthiaskrgr Aug 22, 2024
ae58bbf
Rollup merge of #129376 - ChaiTRex:assert_unsafe_precondition_check_l…
matthiaskrgr Aug 22, 2024
28d4b82
Rollup merge of #129382 - tgross35:once-cell-const-into-inner, r=Nora…
matthiaskrgr Aug 22, 2024
d24e6b7
Rollup merge of #129387 - Zalathar:python-apologia, r=jieyouxu
matthiaskrgr Aug 22, 2024
8b3ca79
Rollup merge of #129388 - cjgillot:region-def-id, r=compiler-errors
matthiaskrgr Aug 22, 2024
9d39b59
Rollup merge of #129395 - fmease:pp-dyn-w-gat, r=compiler-errors
matthiaskrgr Aug 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion library/std/src/os/wasi/fs.rs
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@
//!
//! [`std::fs`]: crate::fs

#![deny(unsafe_op_in_unsafe_fn)]
#![unstable(feature = "wasi_ext", issue = "71213")]

// Used for `File::read` on intra-doc links
2 changes: 1 addition & 1 deletion library/std/src/os/wasi/mod.rs
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@

#![cfg_attr(not(target_env = "p2"), stable(feature = "rust1", since = "1.0.0"))]
#![cfg_attr(target_env = "p2", unstable(feature = "wasip2", issue = "none"))]
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]
#![doc(cfg(target_os = "wasi"))]

pub mod ffi;
1 change: 1 addition & 0 deletions library/std/src/os/wasip2/mod.rs
Original file line number Diff line number Diff line change
@@ -2,4 +2,5 @@
//!
//! This module is currently empty, but will be filled over time as wasi-libc support for WASI Preview 2 is stabilized.

#![forbid(unsafe_op_in_unsafe_fn)]
#![stable(feature = "raw_ext", since = "1.1.0")]
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/args.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use crate::ffi::{CStr, OsStr, OsString};
use crate::os::wasi::ffi::OsStrExt;
2 changes: 2 additions & 0 deletions library/std/src/sys/pal/wasi/env.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![forbid(unsafe_op_in_unsafe_fn)]

pub mod os {
pub const FAMILY: &str = "";
pub const OS: &str = "";
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/fd.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]
#![allow(dead_code)]

use super::err2io;
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/fs.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use super::fd::WasiFd;
use crate::ffi::{CStr, OsStr, OsString};
2 changes: 2 additions & 0 deletions library/std/src/sys/pal/wasi/helpers.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![forbid(unsafe_op_in_unsafe_fn)]

use crate::{io as std_io, mem};

#[inline]
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/io.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use crate::marker::PhantomData;
use crate::os::fd::{AsFd, AsRawFd};
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/net.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use super::err2io;
use super::fd::WasiFd;
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/os.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use core::slice::memchr;

2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/stdio.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use super::fd::WasiFd;
use crate::io::{self, IoSlice, IoSliceMut};
18 changes: 10 additions & 8 deletions library/std/src/sys/pal/wasi/thread.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#![forbid(unsafe_op_in_unsafe_fn)]

use crate::ffi::CStr;
use crate::num::NonZero;
use crate::sys::unsupported;
@@ -73,13 +75,13 @@ impl Thread {
if #[cfg(target_feature = "atomics")] {
pub unsafe fn new(stack: usize, p: Box<dyn FnOnce()>) -> io::Result<Thread> {
let p = Box::into_raw(Box::new(p));
let mut native: libc::pthread_t = mem::zeroed();
let mut attr: libc::pthread_attr_t = mem::zeroed();
assert_eq!(libc::pthread_attr_init(&mut attr), 0);
let mut native: libc::pthread_t = unsafe { mem::zeroed() };
let mut attr: libc::pthread_attr_t = unsafe { mem::zeroed() };
assert_eq!(unsafe { libc::pthread_attr_init(&mut attr) }, 0);

let stack_size = cmp::max(stack, DEFAULT_MIN_STACK_SIZE);

match libc::pthread_attr_setstacksize(&mut attr, stack_size) {
match unsafe { libc::pthread_attr_setstacksize(&mut attr, stack_size) } {
0 => {}
n => {
assert_eq!(n, libc::EINVAL);
@@ -90,20 +92,20 @@ impl Thread {
let page_size = os::page_size();
let stack_size =
(stack_size + page_size - 1) & (-(page_size as isize - 1) as usize - 1);
assert_eq!(libc::pthread_attr_setstacksize(&mut attr, stack_size), 0);
assert_eq!(unsafe { libc::pthread_attr_setstacksize(&mut attr, stack_size) }, 0);
}
};

let ret = libc::pthread_create(&mut native, &attr, thread_start, p as *mut _);
let ret = unsafe { libc::pthread_create(&mut native, &attr, thread_start, p as *mut _) };
// Note: if the thread creation fails and this assert fails, then p will
// be leaked. However, an alternative design could cause double-free
// which is clearly worse.
assert_eq!(libc::pthread_attr_destroy(&mut attr), 0);
assert_eq!(unsafe {libc::pthread_attr_destroy(&mut attr) }, 0);

return if ret != 0 {
// The thread failed to start and as a result p was not consumed. Therefore, it is
// safe to reconstruct the box so that it gets deallocated.
drop(Box::from_raw(p));
unsafe { drop(Box::from_raw(p)); }
Err(io::Error::from_raw_os_error(ret))
} else {
Ok(Thread { id: native })
2 changes: 1 addition & 1 deletion library/std/src/sys/pal/wasi/time.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![deny(unsafe_op_in_unsafe_fn)]
#![forbid(unsafe_op_in_unsafe_fn)]

use crate::time::Duration;