[INFO] crate dlmalloc 0.1.1 is already in cache [INFO] extracting crate dlmalloc 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/dlmalloc/0.1.1 [INFO] extracting crate dlmalloc 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dlmalloc/0.1.1 [INFO] validating manifest of dlmalloc-0.1.1 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of dlmalloc-0.1.1 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing dlmalloc-0.1.1 [INFO] finished frobbing dlmalloc-0.1.1 [INFO] frobbed toml for dlmalloc-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/dlmalloc/0.1.1/Cargo.toml [INFO] started frobbing dlmalloc-0.1.1 [INFO] finished frobbing dlmalloc-0.1.1 [INFO] frobbed toml for dlmalloc-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/dlmalloc/0.1.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting dlmalloc-0.1.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/dlmalloc/0.1.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] fc064d68864c0a1b1693e283498083f511fb23056a487cb361c79bd245504001 [INFO] running `"docker" "start" "-a" "fc064d68864c0a1b1693e283498083f511fb23056a487cb361c79bd245504001"` [INFO] [stderr] Compiling dlmalloc v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:411:9 [INFO] [stderr] | [INFO] [stderr] 411 | return ptr::null_mut() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ptr::null_mut()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:431:9 [INFO] [stderr] | [INFO] [stderr] 431 | return ptr [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:483:13 [INFO] [stderr] | [INFO] [stderr] 483 | return p [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `p` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:542:9 [INFO] [stderr] | [INFO] [stderr] 542 | return newp [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `newp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:612:9 [INFO] [stderr] | [INFO] [stderr] 612 | return mem [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `mem` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:736:9 [INFO] [stderr] | [INFO] [stderr] 736 | return ret [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/dlmalloc.rs:1014:46 [INFO] [stderr] | [INFO] [stderr] 1014 | let c = &mut (*t).child[(k >> mem::size_of::() * 8 - 1) & 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `k >> (mem::size_of::() * 8 - 1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/dlmalloc.rs:1126:16 [INFO] [stderr] | [INFO] [stderr] 1126 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 1127 | | if (*xp).child[0] == chunk { [INFO] [stderr] 1128 | | (*xp).child[0] = r; [INFO] [stderr] 1129 | | } else { [INFO] [stderr] 1130 | | (*xp).child[1] = r; [INFO] [stderr] 1131 | | } [INFO] [stderr] 1132 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1126 | } else if (*xp).child[0] == chunk { [INFO] [stderr] 1127 | (*xp).child[0] = r; [INFO] [stderr] 1128 | } else { [INFO] [stderr] 1129 | (*xp).child[1] = r; [INFO] [stderr] 1130 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/dlmalloc.rs:1240:17 [INFO] [stderr] | [INFO] [stderr] 1240 | / if !Segment::is_extern(sp) { [INFO] [stderr] 1241 | | if Segment::can_release_part(sp) { [INFO] [stderr] 1242 | | if (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1243 | | let newsize = (*sp).size - extra; [INFO] [stderr] ... | [INFO] [stderr] 1248 | | } [INFO] [stderr] 1249 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1240 | if !Segment::is_extern(sp) && Segment::can_release_part(sp) { [INFO] [stderr] 1241 | if (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1242 | let newsize = (*sp).size - extra; [INFO] [stderr] 1243 | if sys::free_part((*sp).base, (*sp).size, newsize) { [INFO] [stderr] 1244 | released = extra; [INFO] [stderr] 1245 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/dlmalloc.rs:1241:21 [INFO] [stderr] | [INFO] [stderr] 1241 | / if Segment::can_release_part(sp) { [INFO] [stderr] 1242 | | if (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1243 | | let newsize = (*sp).size - extra; [INFO] [stderr] 1244 | | if sys::free_part((*sp).base, (*sp).size, newsize) { [INFO] [stderr] ... | [INFO] [stderr] 1247 | | } [INFO] [stderr] 1248 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1241 | if Segment::can_release_part(sp) && (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1242 | let newsize = (*sp).size - extra; [INFO] [stderr] 1243 | if sys::free_part((*sp).base, (*sp).size, newsize) { [INFO] [stderr] 1244 | released = extra; [INFO] [stderr] 1245 | } [INFO] [stderr] 1246 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:1330:9 [INFO] [stderr] | [INFO] [stderr] 1330 | return released [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `released` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:411:9 [INFO] [stderr] | [INFO] [stderr] 411 | return ptr::null_mut() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ptr::null_mut()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:431:9 [INFO] [stderr] | [INFO] [stderr] 431 | return ptr [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ptr` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:483:13 [INFO] [stderr] | [INFO] [stderr] 483 | return p [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `p` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:542:9 [INFO] [stderr] | [INFO] [stderr] 542 | return newp [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `newp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:612:9 [INFO] [stderr] | [INFO] [stderr] 612 | return mem [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `mem` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:736:9 [INFO] [stderr] | [INFO] [stderr] 736 | return ret [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/dlmalloc.rs:1014:46 [INFO] [stderr] | [INFO] [stderr] 1014 | let c = &mut (*t).child[(k >> mem::size_of::() * 8 - 1) & 1]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `k >> (mem::size_of::() * 8 - 1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/dlmalloc.rs:1126:16 [INFO] [stderr] | [INFO] [stderr] 1126 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 1127 | | if (*xp).child[0] == chunk { [INFO] [stderr] 1128 | | (*xp).child[0] = r; [INFO] [stderr] 1129 | | } else { [INFO] [stderr] 1130 | | (*xp).child[1] = r; [INFO] [stderr] 1131 | | } [INFO] [stderr] 1132 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1126 | } else if (*xp).child[0] == chunk { [INFO] [stderr] 1127 | (*xp).child[0] = r; [INFO] [stderr] 1128 | } else { [INFO] [stderr] 1129 | (*xp).child[1] = r; [INFO] [stderr] 1130 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/dlmalloc.rs:1240:17 [INFO] [stderr] | [INFO] [stderr] 1240 | / if !Segment::is_extern(sp) { [INFO] [stderr] 1241 | | if Segment::can_release_part(sp) { [INFO] [stderr] 1242 | | if (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1243 | | let newsize = (*sp).size - extra; [INFO] [stderr] ... | [INFO] [stderr] 1248 | | } [INFO] [stderr] 1249 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1240 | if !Segment::is_extern(sp) && Segment::can_release_part(sp) { [INFO] [stderr] 1241 | if (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1242 | let newsize = (*sp).size - extra; [INFO] [stderr] 1243 | if sys::free_part((*sp).base, (*sp).size, newsize) { [INFO] [stderr] 1244 | released = extra; [INFO] [stderr] 1245 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/dlmalloc.rs:1241:21 [INFO] [stderr] | [INFO] [stderr] 1241 | / if Segment::can_release_part(sp) { [INFO] [stderr] 1242 | | if (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1243 | | let newsize = (*sp).size - extra; [INFO] [stderr] 1244 | | if sys::free_part((*sp).base, (*sp).size, newsize) { [INFO] [stderr] ... | [INFO] [stderr] 1247 | | } [INFO] [stderr] 1248 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 1241 | if Segment::can_release_part(sp) && (*sp).size >= extra && !self.has_segment_link(sp) { [INFO] [stderr] 1242 | let newsize = (*sp).size - extra; [INFO] [stderr] 1243 | if sys::free_part((*sp).base, (*sp).size, newsize) { [INFO] [stderr] 1244 | released = extra; [INFO] [stderr] 1245 | } [INFO] [stderr] 1246 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/dlmalloc.rs:1330:9 [INFO] [stderr] | [INFO] [stderr] 1330 | return released [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `released` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:192:39 [INFO] [stderr] | [INFO] [stderr] 192 | let chunk = Chunk::to_mem(ptr as *mut Chunk); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | / ptr.offset(self.align_offset(chunk) as isize) [INFO] [stderr] 194 | | as *mut Chunk [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | ptr.offset(self.align_offset(chunk) as isize) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(self.align_offset(chunk))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:358:27 [INFO] [stderr] | [INFO] [stderr] 358 | self.init_top(tbase as *mut Chunk, tsize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:379:54 [INFO] [stderr] | [INFO] [stderr] 379 | while !sp.is_null() && (*sp).base != tbase.offset(tsize as isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `tbase.add(tsize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:533:20 [INFO] [stderr] | [INFO] [stderr] 533 | let newp = ptr.offset(offset as isize) as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:533:20 [INFO] [stderr] | [INFO] [stderr] 533 | let newp = ptr.offset(offset as isize) as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:577:17 [INFO] [stderr] | [INFO] [stderr] 577 | (br as *mut u8).offset(alignment as isize) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(br as *mut u8).add(alignment)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:579:24 [INFO] [stderr] | [INFO] [stderr] 579 | let newp = pos as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:750:54 [INFO] [stderr] | [INFO] [stderr] 750 | let offset = self.align_offset(Chunk::to_mem(rawsp as *mut Chunk)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:751:19 [INFO] [stderr] | [INFO] [stderr] 751 | let asp = rawsp.offset(offset as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rawsp.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:752:28 [INFO] [stderr] | [INFO] [stderr] 752 | let csp = if asp < old_top.offset(self.min_chunk_size() as isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `old_top.add(self.min_chunk_size())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:757:18 [INFO] [stderr] | [INFO] [stderr] 757 | let sp = csp as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Segment`) [INFO] [stderr] --> src/dlmalloc.rs:758:18 [INFO] [stderr] | [INFO] [stderr] 758 | let ss = Chunk::to_mem(sp) as *mut Segment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:765:23 [INFO] [stderr] | [INFO] [stderr] 765 | self.init_top(tbase as *mut Chunk, size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:791:21 [INFO] [stderr] | [INFO] [stderr] 791 | let q = old_top as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/dlmalloc.rs:903:12 [INFO] [stderr] | [INFO] [stderr] 903 | if v.is_null() || (self.dvsize >= size && !(rsize < self.dvsize - size)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `v.is_null() || self.dvsize >= size && rsize >= self.dvsize - size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1299:33 [INFO] [stderr] | [INFO] [stderr] 1299 | let chunk_top = (p as *mut u8).offset(psize as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(p as *mut u8).add(psize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1300:27 [INFO] [stderr] | [INFO] [stderr] 1300 | let top = base.offset((size - self.top_foot_size()) as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `base.add((size - self.top_foot_size()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/dlmalloc.rs:1404:5 [INFO] [stderr] | [INFO] [stderr] 1404 | / unsafe fn check_free_chunk(&self, p: *mut Chunk) { [INFO] [stderr] 1405 | | if !cfg!(debug_assertions) { [INFO] [stderr] 1406 | | return [INFO] [stderr] 1407 | | } [INFO] [stderr] ... | [INFO] [stderr] 1426 | | } [INFO] [stderr] 1427 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 49 [INFO] [stderr] --> src/dlmalloc.rs:1498:5 [INFO] [stderr] | [INFO] [stderr] 1498 | / unsafe fn check_tree(&mut self, t: *mut TreeChunk) { [INFO] [stderr] 1499 | | if !cfg!(debug_assertions) { [INFO] [stderr] 1500 | | return [INFO] [stderr] 1501 | | } [INFO] [stderr] ... | [INFO] [stderr] 1556 | | debug_assert!(!head.is_null()); [INFO] [stderr] 1557 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/dlmalloc.rs:1617:23 [INFO] [stderr] | [INFO] [stderr] 1617 | const PINUSE: usize = 1 << 0; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1633:9 [INFO] [stderr] | [INFO] [stderr] 1633 | (me as *mut u8).offset(((*me).head & !FLAG_BITS) as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1633:9 [INFO] [stderr] | [INFO] [stderr] 1633 | (me as *mut u8).offset(((*me).head & !FLAG_BITS) as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(me as *mut u8).add(((*me).head & !FLAG_BITS))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1637:9 [INFO] [stderr] | [INFO] [stderr] 1637 | (me as *mut u8).offset(-((*me).prev_foot as isize)) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1692:9 [INFO] [stderr] | [INFO] [stderr] 1692 | (me as *mut u8).offset(offset as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1692:9 [INFO] [stderr] | [INFO] [stderr] 1692 | (me as *mut u8).offset(offset as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(me as *mut u8).add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1696:9 [INFO] [stderr] | [INFO] [stderr] 1696 | (me as *mut u8).offset(-(offset as isize)) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dlmalloc.rs:1699:22 [INFO] [stderr] | [INFO] [stderr] 1699 | unsafe fn to_mem(me: *mut Chunk) -> *mut u8 { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1704:9 [INFO] [stderr] | [INFO] [stderr] 1704 | mem.offset(-2 * (mem::size_of::() as isize)) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/dlmalloc.rs:1731:21 [INFO] [stderr] | [INFO] [stderr] 1731 | const EXTERN: u32 = 1 << 0; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1751:9 [INFO] [stderr] | [INFO] [stderr] 1751 | (*seg).base.offset((*seg).size as isize) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(*seg).base.add((*seg).size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/linux.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | let addr = libc::mmap(0 as *mut _, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/linux.rs:36:18 [INFO] [stderr] | [INFO] [stderr] 36 | libc::munmap(ptr.offset(newsize as isize) as *mut _, oldsize - newsize) == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(newsize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `Dlmalloc` [INFO] [stderr] --> src/lib.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / pub fn new() -> Dlmalloc { [INFO] [stderr] 62 | | DLMALLOC_INIT [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | impl Default for Dlmalloc { [INFO] [stderr] 60 | fn default() -> Self { [INFO] [stderr] 61 | Self::new() [INFO] [stderr] 62 | } [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/lib.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | drop((size, align)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type (usize, usize) [INFO] [stderr] --> src/lib.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | drop((size, align)); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] error: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dlmalloc`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:192:39 [INFO] [stderr] | [INFO] [stderr] 192 | let chunk = Chunk::to_mem(ptr as *mut Chunk); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | / ptr.offset(self.align_offset(chunk) as isize) [INFO] [stderr] 194 | | as *mut Chunk [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:193:13 [INFO] [stderr] | [INFO] [stderr] 193 | ptr.offset(self.align_offset(chunk) as isize) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(self.align_offset(chunk))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:358:27 [INFO] [stderr] | [INFO] [stderr] 358 | self.init_top(tbase as *mut Chunk, tsize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:379:54 [INFO] [stderr] | [INFO] [stderr] 379 | while !sp.is_null() && (*sp).base != tbase.offset(tsize as isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `tbase.add(tsize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:533:20 [INFO] [stderr] | [INFO] [stderr] 533 | let newp = ptr.offset(offset as isize) as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:533:20 [INFO] [stderr] | [INFO] [stderr] 533 | let newp = ptr.offset(offset as isize) as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:577:17 [INFO] [stderr] | [INFO] [stderr] 577 | (br as *mut u8).offset(alignment as isize) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(br as *mut u8).add(alignment)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:579:24 [INFO] [stderr] | [INFO] [stderr] 579 | let newp = pos as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:750:54 [INFO] [stderr] | [INFO] [stderr] 750 | let offset = self.align_offset(Chunk::to_mem(rawsp as *mut Chunk)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:751:19 [INFO] [stderr] | [INFO] [stderr] 751 | let asp = rawsp.offset(offset as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rawsp.add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:752:28 [INFO] [stderr] | [INFO] [stderr] 752 | let csp = if asp < old_top.offset(self.min_chunk_size() as isize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `old_top.add(self.min_chunk_size())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:757:18 [INFO] [stderr] | [INFO] [stderr] 757 | let sp = csp as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Segment`) [INFO] [stderr] --> src/dlmalloc.rs:758:18 [INFO] [stderr] | [INFO] [stderr] 758 | let ss = Chunk::to_mem(sp) as *mut Segment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:765:23 [INFO] [stderr] | [INFO] [stderr] 765 | self.init_top(tbase as *mut Chunk, size); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:791:21 [INFO] [stderr] | [INFO] [stderr] 791 | let q = old_top as *mut Chunk; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/dlmalloc.rs:903:12 [INFO] [stderr] | [INFO] [stderr] 903 | if v.is_null() || (self.dvsize >= size && !(rsize < self.dvsize - size)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `v.is_null() || self.dvsize >= size && rsize >= self.dvsize - size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1299:33 [INFO] [stderr] | [INFO] [stderr] 1299 | let chunk_top = (p as *mut u8).offset(psize as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(p as *mut u8).add(psize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1300:27 [INFO] [stderr] | [INFO] [stderr] 1300 | let top = base.offset((size - self.top_foot_size()) as isize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `base.add((size - self.top_foot_size()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/dlmalloc.rs:1404:5 [INFO] [stderr] | [INFO] [stderr] 1404 | / unsafe fn check_free_chunk(&self, p: *mut Chunk) { [INFO] [stderr] 1405 | | if !cfg!(debug_assertions) { [INFO] [stderr] 1406 | | return [INFO] [stderr] 1407 | | } [INFO] [stderr] ... | [INFO] [stderr] 1426 | | } [INFO] [stderr] 1427 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 49 [INFO] [stderr] --> src/dlmalloc.rs:1498:5 [INFO] [stderr] | [INFO] [stderr] 1498 | / unsafe fn check_tree(&mut self, t: *mut TreeChunk) { [INFO] [stderr] 1499 | | if !cfg!(debug_assertions) { [INFO] [stderr] 1500 | | return [INFO] [stderr] 1501 | | } [INFO] [stderr] ... | [INFO] [stderr] 1556 | | debug_assert!(!head.is_null()); [INFO] [stderr] 1557 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/dlmalloc.rs:1617:23 [INFO] [stderr] | [INFO] [stderr] 1617 | const PINUSE: usize = 1 << 0; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1633:9 [INFO] [stderr] | [INFO] [stderr] 1633 | (me as *mut u8).offset(((*me).head & !FLAG_BITS) as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1633:9 [INFO] [stderr] | [INFO] [stderr] 1633 | (me as *mut u8).offset(((*me).head & !FLAG_BITS) as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(me as *mut u8).add(((*me).head & !FLAG_BITS))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1637:9 [INFO] [stderr] | [INFO] [stderr] 1637 | (me as *mut u8).offset(-((*me).prev_foot as isize)) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1692:9 [INFO] [stderr] | [INFO] [stderr] 1692 | (me as *mut u8).offset(offset as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1692:9 [INFO] [stderr] | [INFO] [stderr] 1692 | (me as *mut u8).offset(offset as isize) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(me as *mut u8).add(offset)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1696:9 [INFO] [stderr] | [INFO] [stderr] 1696 | (me as *mut u8).offset(-(offset as isize)) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: methods called `to_*` usually take self by reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/dlmalloc.rs:1699:22 [INFO] [stderr] | [INFO] [stderr] 1699 | unsafe fn to_mem(me: *mut Chunk) -> *mut u8 { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] error: casting from `*mut u8` to a more-strictly-aligned pointer (`*mut dlmalloc::Chunk`) [INFO] [stderr] --> src/dlmalloc.rs:1704:9 [INFO] [stderr] | [INFO] [stderr] 1704 | mem.offset(-2 * (mem::size_of::() as isize)) as *mut Chunk [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/dlmalloc.rs:1731:21 [INFO] [stderr] | [INFO] [stderr] 1731 | const EXTERN: u32 = 1 << 0; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/dlmalloc.rs:1751:9 [INFO] [stderr] | [INFO] [stderr] 1751 | (*seg).base.offset((*seg).size as isize) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(*seg).base.add((*seg).size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: `0 as *mut _` detected. Consider using `ptr::null_mut()` [INFO] [stderr] --> src/linux.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | let addr = libc::mmap(0 as *mut _, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/linux.rs:36:18 [INFO] [stderr] | [INFO] [stderr] 36 | libc::munmap(ptr.offset(newsize as isize) as *mut _, oldsize - newsize) == 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ptr.add(newsize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `Dlmalloc` [INFO] [stderr] --> src/lib.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | / pub fn new() -> Dlmalloc { [INFO] [stderr] 62 | | DLMALLOC_INIT [INFO] [stderr] 63 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | impl Default for Dlmalloc { [INFO] [stderr] 60 | fn default() -> Self { [INFO] [stderr] 61 | Self::new() [INFO] [stderr] 62 | } [INFO] [stderr] 63 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/lib.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | drop((size, align)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type (usize, usize) [INFO] [stderr] --> src/lib.rs:99:14 [INFO] [stderr] | [INFO] [stderr] 99 | drop((size, align)); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] error: aborting due to 16 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `dlmalloc`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "fc064d68864c0a1b1693e283498083f511fb23056a487cb361c79bd245504001"` [INFO] running `"docker" "rm" "-f" "fc064d68864c0a1b1693e283498083f511fb23056a487cb361c79bd245504001"` [INFO] [stdout] fc064d68864c0a1b1693e283498083f511fb23056a487cb361c79bd245504001