File tree 2 files changed +28
-0
lines changed
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