Commit 8903ff0
940: Fix get_unchecked panic by raw pointer calculation r=taiki-e a=sticnarf
It is related to #878 but doesn't fix it. Miri still complains with this PR.
It fixes the panic on recent toolchains (after rust-lang/rust#92686) when using `-Zbuild-std`.
```
$ RUST_BACKTRACE=1 cargo test -p crossbeam-skiplist -Zbuild-std --target x86_64-unknown-linux-gnu --test map -- smoke
Finished test [unoptimized + debuginfo] target(s) in 0.03s
Running tests/map.rs (target/x86_64-unknown-linux-gnu/debug/deps/map-509dc855f6125f07)
running 1 test
thread 'smoke' panicked at 'unsafe precondition(s) violated: slice::get_unchecked requires that the index is within the slice', /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:87:58
stack backtrace:
0: rust_begin_unwind
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:575:5
1: core::panicking::panic_str_nounwind
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:90:14
2: <usize as core::slice::index::SliceIndex<[T]>>::get_unchecked::runtime
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/intrinsics.rs:2284:21
3: <usize as core::slice::index::SliceIndex<[T]>>::get_unchecked
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:236:13
4: core::slice::<impl [T]>::get_unchecked
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:399:20
5: <crossbeam_skiplist::base::Tower<K,V> as core::ops::index::Index<usize>>::index
at ./src/base.rs:39:18
6: crossbeam_skiplist::base::SkipList<K,V>::search_position
at ./src/base.rs:781:24
7: crossbeam_skiplist::base::SkipList<K,V>::insert_internal
at ./src/base.rs:871:26
8: crossbeam_skiplist::base::SkipList<K,V>::insert
at ./src/base.rs:1085:9
9: crossbeam_skiplist::map::SkipMap<K,V>::insert
at ./src/map.rs:375:20
10: map::smoke
at ./tests/map.rs:9:5
11: map::smoke::{{closure}}
at ./tests/map.rs:7:12
12: core::ops::function::FnOnce::call_once
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:507:5
13: core::ops::function::FnOnce::call_once
at /home/yilin/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:507:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread panicked while panicking. aborting.
error: test failed, to rerun pass `-p crossbeam-skiplist --test map`
Caused by:
process didn't exit successfully: `/home/yilin/Repos/crossbeam/target/x86_64-unknown-linux-gnu/debug/deps/map-509dc855f6125f07 smoke` (signal: 6, SIGABRT: process abort signal)
```
941: Fix newly added clippy warnings r=taiki-e a=taiki-e
Co-authored-by: Yilin Chen <sticnarf@gmail.com>
Co-authored-by: Taiki Endo <te316e89@gmail.com>
3 files changed
+5
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
| 137 | + | |
142 | 138 | | |
143 | 139 | | |
144 | 140 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
| 108 | + | |
113 | 109 | | |
114 | 110 | | |
115 | 111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
1718 | 1718 | | |
1719 | 1719 | | |
1720 | 1720 | | |
1721 | | - | |
| 1721 | + | |
1722 | 1722 | | |
1723 | 1723 | | |
1724 | 1724 | | |
| |||
1745 | 1745 | | |
1746 | 1746 | | |
1747 | 1747 | | |
1748 | | - | |
| 1748 | + | |
1749 | 1749 | | |
1750 | 1750 | | |
1751 | 1751 | | |
| |||
0 commit comments