File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change 1+ #![ feature( core_intrinsics) ]
2+ #![ feature( rustc_attrs) ]
3+
4+ use std:: intrinsics:: typed_swap;
5+ use std:: ptr:: addr_of_mut;
6+
7+ fn main ( ) {
8+ let mut a = [ 0_u8 ; 100 ] ;
9+ unsafe {
10+ let a = addr_of_mut ! ( a) ;
11+ typed_swap ( a, a) ; //~ERROR: called on overlapping ranges
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ error: Undefined Behavior: `copy_nonoverlapping` called on overlapping ranges
2+ --> tests/fail/intrinsics/typed-swap-overlap.rs:LL:CC
3+ |
4+ LL | typed_swap(a, a);
5+ | ^^^^^^^^^^^^^^^^ `copy_nonoverlapping` called on overlapping ranges
6+ |
7+ = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
8+ = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
9+ = note: BACKTRACE:
10+ = note: inside `main` at tests/fail/intrinsics/typed-swap-overlap.rs:LL:CC
11+
12+ note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
13+
14+ error: aborting due to 1 previous error
15+
You can’t perform that action at this time.
0 commit comments