Auto merge of #2592 - RalfJung:rustup, r=RalfJung

Rustup
This commit is contained in:
bors 2022-10-12 18:37:24 +00:00
commit d8761c02bf
4 changed files with 4 additions and 5 deletions

View file

@ -1 +1 @@
0265a3e93bf1b89d97cae113ed214954d5c35e22
538f118da1409759ba198acc0ff62070bc6d2dce

View file

@ -17,7 +17,7 @@
//! load to the first, as a result of C++20's coherence-ordered before rules.
//!
//! Rust follows the C++20 memory model (except for the Consume ordering and some operations not performable through C++'s
//! std::atomic<T> API). It is therefore possible for this implementation to generate behaviours never observable when the
//! `std::atomic<T>` API). It is therefore possible for this implementation to generate behaviours never observable when the
//! same program is compiled and run natively. Unfortunately, no literature exists at the time of writing which proposes
//! an implementable and C++20-compatible relaxed memory model that supports all atomic operation existing in Rust. The closest one is
//! A Promising Semantics for Relaxed-Memory Concurrency by Jeehoon Kang et al. (<https://www.cs.tau.ac.il/~orilahav/papers/popl17.pdf>)

View file

@ -1,5 +1,4 @@
#![feature(rustc_private)]
#![feature(map_first_last)]
#![feature(map_try_insert)]
#![feature(never_type)]
#![feature(try_blocks)]

View file

@ -1,7 +1,7 @@
//@revisions: extern_block definition both
#![feature(rustc_attrs, c_unwind)]
#[cfg_attr(any(definition, both), rustc_allocator_nounwind)]
#[cfg_attr(any(definition, both), rustc_nounwind)]
#[no_mangle]
extern "C-unwind" fn nounwind() {
//[definition]~^ ERROR: abnormal termination: the program aborted execution
@ -11,7 +11,7 @@ extern "C-unwind" fn nounwind() {
fn main() {
extern "C-unwind" {
#[cfg_attr(any(extern_block, both), rustc_allocator_nounwind)]
#[cfg_attr(any(extern_block, both), rustc_nounwind)]
fn nounwind();
}
unsafe { nounwind() }