Auto merge of #3155 - RalfJung:data-race-docs, r=RalfJung
data_race: link to docs for 'unusual' race conditions
This commit is contained in:
commit
fe0b970992
@ -270,7 +270,8 @@ pub fn report_error<'tcx, 'mir>(
|
|||||||
DataRace { op1, extra, .. } => {
|
DataRace { op1, extra, .. } => {
|
||||||
let mut helps = vec![(Some(op1.span), format!("and (1) occurred earlier here"))];
|
let mut helps = vec![(Some(op1.span), format!("and (1) occurred earlier here"))];
|
||||||
if let Some(extra) = extra {
|
if let Some(extra) = extra {
|
||||||
helps.push((None, format!("{extra}")))
|
helps.push((None, format!("{extra}")));
|
||||||
|
helps.push((None, format!("see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model")));
|
||||||
}
|
}
|
||||||
helps.push((None, format!("this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior")));
|
helps.push((None, format!("this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior")));
|
||||||
helps.push((None, format!("see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information")));
|
helps.push((None, format!("see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information")));
|
||||||
|
@ -10,6 +10,7 @@ help: and (1) occurred earlier here
|
|||||||
LL | a16.load(Ordering::SeqCst);
|
LL | a16.load(Ordering::SeqCst);
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= help: overlapping unsynchronized atomic accesses must use the same access size
|
= help: overlapping unsynchronized atomic accesses must use the same access size
|
||||||
|
= help: see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model
|
||||||
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
||||||
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
||||||
= note: BACKTRACE (of the first span):
|
= note: BACKTRACE (of the first span):
|
||||||
|
@ -10,6 +10,7 @@ help: and (1) occurred earlier here
|
|||||||
LL | a16.store(1, Ordering::SeqCst);
|
LL | a16.store(1, Ordering::SeqCst);
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= help: overlapping unsynchronized atomic accesses must use the same access size
|
= help: overlapping unsynchronized atomic accesses must use the same access size
|
||||||
|
= help: see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model
|
||||||
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
||||||
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
||||||
= note: BACKTRACE (of the first span):
|
= note: BACKTRACE (of the first span):
|
||||||
|
@ -10,6 +10,7 @@ help: and (1) occurred earlier here
|
|||||||
LL | unsafe { ptr.read() };
|
LL | unsafe { ptr.read() };
|
||||||
| ^^^^^^^^^^
|
| ^^^^^^^^^^
|
||||||
= help: overlapping atomic and non-atomic accesses must be synchronized, even if both are read-only
|
= help: overlapping atomic and non-atomic accesses must be synchronized, even if both are read-only
|
||||||
|
= help: see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model
|
||||||
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
||||||
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
||||||
= note: BACKTRACE (of the first span):
|
= note: BACKTRACE (of the first span):
|
||||||
|
@ -10,6 +10,7 @@ help: and (1) occurred earlier here
|
|||||||
LL | a.load(Ordering::SeqCst);
|
LL | a.load(Ordering::SeqCst);
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= help: overlapping atomic and non-atomic accesses must be synchronized, even if both are read-only
|
= help: overlapping atomic and non-atomic accesses must be synchronized, even if both are read-only
|
||||||
|
= help: see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model
|
||||||
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
||||||
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
||||||
= note: BACKTRACE (of the first span):
|
= note: BACKTRACE (of the first span):
|
||||||
|
@ -10,6 +10,7 @@ help: and (1) occurred earlier here
|
|||||||
LL | x.store(1, Relaxed);
|
LL | x.store(1, Relaxed);
|
||||||
| ^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^
|
||||||
= help: overlapping unsynchronized atomic accesses must use the same access size
|
= help: overlapping unsynchronized atomic accesses must use the same access size
|
||||||
|
= help: see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model
|
||||||
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
||||||
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
||||||
= note: BACKTRACE (of the first span):
|
= note: BACKTRACE (of the first span):
|
||||||
|
@ -10,6 +10,7 @@ help: and (1) occurred earlier here
|
|||||||
LL | x.load(Relaxed);
|
LL | x.load(Relaxed);
|
||||||
| ^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^
|
||||||
= help: overlapping unsynchronized atomic accesses must use the same access size
|
= help: overlapping unsynchronized atomic accesses must use the same access size
|
||||||
|
= help: see https://doc.rust-lang.org/nightly/std/sync/atomic/index.html#memory-model-for-atomic-accesses for more information about the Rust memory model
|
||||||
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
||||||
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
||||||
= note: BACKTRACE (of the first span):
|
= note: BACKTRACE (of the first span):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user