[INFO] cloning repository https://github.com/favilo/rpi-ws2811-smi-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/favilo/rpi-ws2811-smi-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 26e4110e7489f4dcc4e43196c7cf80249e0aeb9e
[INFO] checking favilo/rpi-ws2811-smi-rust against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/favilo/rpi-ws2811-smi-rust
[INFO] finished tweaking git repo https://github.com/favilo/rpi-ws2811-smi-rust
[INFO] tweaked toml for git repo https://github.com/favilo/rpi-ws2811-smi-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/favilo/rpi-ws2811-smi-rust on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/favilo/rpi-ws2811-smi-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded c2rust-bitfields v0.18.0
[INFO] [stderr]   Downloaded errno v0.3.5
[INFO] [stderr]   Downloaded memmap2 v0.9.0
[INFO] [stderr]   Downloaded prettyplease v0.2.15
[INFO] [stderr]   Downloaded c2rust-bitfields-derive v0.18.0
[INFO] [stderr]   Downloaded bindgen v0.68.1
[INFO] [stderr]   Downloaded rustix v0.38.20
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ecf02983b9284ef4c201e72fc7ba0a9b63aeab20e86815cd62d0a2830fc02537
[INFO] running `Command { std: "docker" "start" "-a" "ecf02983b9284ef4c201e72fc7ba0a9b63aeab20e86815cd62d0a2830fc02537", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ecf02983b9284ef4c201e72fc7ba0a9b63aeab20e86815cd62d0a2830fc02537", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ecf02983b9284ef4c201e72fc7ba0a9b63aeab20e86815cd62d0a2830fc02537", kill_on_drop: false }`
[INFO] [stdout] ecf02983b9284ef4c201e72fc7ba0a9b63aeab20e86815cd62d0a2830fc02537
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9c8002e482dfd1aadf216e83422f2573e9299c47534373dd984698214a206a2d
[INFO] running `Command { std: "docker" "start" "-a" "9c8002e482dfd1aadf216e83422f2573e9299c47534373dd984698214a206a2d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling prettyplease v0.2.15
[INFO] [stderr]    Compiling rustix v0.38.20
[INFO] [stderr]    Compiling bitflags v2.4.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.10
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling bindgen v0.68.1
[INFO] [stderr]    Compiling home v0.5.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling thiserror v1.0.49
[INFO] [stderr]    Compiling clang-sys v1.6.1
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking memmap2 v0.9.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling c2rust-bitfields-derive v0.18.0
[INFO] [stderr]     Checking c2rust-bitfields v0.18.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.49
[INFO] [stderr]    Compiling rpi_ws2811_smi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `env` and `path::PathBuf`
[INFO] [stdout]  --> build.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{env, path::PathBuf};
[INFO] [stdout]   |           ^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(rpi4)]
[INFO] [stdout]   |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[cfg(not(rpi4))]
[INFO] [stdout]   |           ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(rpi4)]
[INFO] [stdout]    |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[cfg(rpi23)]
[INFO] [stdout]    |       ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |               ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |                      ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! DMA_REG {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_PRIORITY`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | macro_rules! DMA_PRIORITY {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DMA_PRIORITY` and `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) use {DMA_PRIORITY, DMA_REG};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | macro_rules! BUS_PHYS_ADDR {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) use {BUS_PHYS_ADDR, MEM_BUS_ADDR, REG_BUS_ADDR};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 218 | macro_rules! set_bits {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub(crate) use {set_bits, REG32};
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::write_volatile`
[INFO] [stdout]   --> src/c2rust/smileds.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ptr::write_volatile;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUS_REG_BASE` is never used
[INFO] [stdout]   --> src/consts.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const BUS_REG_BASE: *mut c_void = 0x7E000000 as *mut c_void;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_A` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const DMA_CHAN_A: usize = 10;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_B` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const DMA_CHAN_B: usize = 11;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_PWM_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const DMA_PWM_DREQ: usize = 5;
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_TX_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const DMA_SPI_TX_DREQ: usize = 6;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_RX_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) const DMA_SPI_RX_DREQ: usize = 7;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_BASE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const DMA_BASE: *const c_void = PHYS_REG_BASE.wrapping_offset(0x007000);
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CS` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const DMA_CS: usize = 0x00;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CONBLK_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) const DMA_CONBLK_AD: usize = 0x04;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TI` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) const DMA_TI: usize = 0x08;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const DMA_SRCE_AD: usize = 0x0c;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEST_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const DMA_DEST_AD: usize = 0x10;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TXFR_LEN` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const DMA_TXFR_LEN: usize = 0x14;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_STRIDE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DMA_STRIDE: usize = 0x18;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_NEXTCONBK` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const DMA_NEXTCONBK: usize = 0x1c;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEBUG` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const DMA_DEBUG: usize = 0x20;
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_ENABLE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) const DMA_ENABLE: usize = 0xff0;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CB_DEST_INC` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const DMA_CB_DEST_INC: usize = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) const DMA_SRCE_DREQ: usize = 1 << 10;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const SMI_DSR1: usize = 0x18; // Read settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const SMI_DSW1: usize = 0x1c; // Write settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const SMI_DSR2: usize = 0x20; // Read settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const SMI_DSW2: usize = 0x24; // Write settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const SMI_DSR3: usize = 0x28; // Read settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const SMI_DSW3: usize = 0x2c; // Write settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_FD` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const SMI_FD: usize = 0x40; // FIFO debug
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_18_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub(crate) const SMI_18_BITS: usize = 2;
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_9_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub(crate) const SMI_9_BITS: usize = 3;
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:645:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&raw mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:110:16
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&raw mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&raw mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&raw mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&mut vc_mem);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&raw mut vc_mem);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&mut smi_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&raw mut smi_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&mut dma_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&raw mut dma_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&mut gpio_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&raw mut gpio_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&raw mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&raw mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:326:15
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         led_count,
[INFO] [stdout]     |         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     return tx_buffer.as_mut_ptr();
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:386:46
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut tx_offset: *mut uint16_t = &mut *tx_buffer
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 387 | |         .as_mut_ptr()
[INFO] [stdout]     | |_____________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:407:15
[INFO] [stdout]     |
[INFO] [stdout] 407 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     color_buffer.fill([color_t { packed: 0 }; 512]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         tx_buffer.as_mut_ptr() as *const libc::c_void,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:430:15
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&mut vc_mem);
[INFO] [stdout]     |               ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&raw mut vc_mem);
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[cfg(rpi4)]
[INFO] [stdout]   |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]  --> src/consts.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[cfg(not(rpi4))]
[INFO] [stdout]   |           ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[cfg(rpi4)]
[INFO] [stdout]    |       ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[cfg(rpi23)]
[INFO] [stdout]    |       ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi23`
[INFO] [stdout]   --> src/consts.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |               ^^^^^ help: found config with similar value: `feature = "rpi23"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `rpi4`
[INFO] [stdout]   --> src/consts.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 | #[cfg(not(any(rpi23, rpi4)))]
[INFO] [stdout]    |                      ^^^^ help: found config with similar value: `feature = "rpi4"`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider using a Cargo feature instead
[INFO] [stdout]    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]             [lints.rust]
[INFO] [stdout]             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] }
[INFO] [stdout]    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:35:14
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! DMA_REG {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DMA_PRIORITY`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:45:14
[INFO] [stdout]    |
[INFO] [stdout] 45 | macro_rules! DMA_PRIORITY {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DMA_PRIORITY` and `DMA_REG`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) use {DMA_PRIORITY, DMA_REG};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | macro_rules! BUS_PHYS_ADDR {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BUS_PHYS_ADDR`
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) use {BUS_PHYS_ADDR, MEM_BUS_ADDR, REG_BUS_ADDR};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 218 | macro_rules! set_bits {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_bits`
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub(crate) use {set_bits, REG32};
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::write_volatile`
[INFO] [stdout]   --> src/c2rust/smileds.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::ptr::write_volatile;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUS_REG_BASE` is never used
[INFO] [stdout]   --> src/consts.rs:52:18
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) const BUS_REG_BASE: *mut c_void = 0x7E000000 as *mut c_void;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_A` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) const DMA_CHAN_A: usize = 10;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CHAN_B` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) const DMA_CHAN_B: usize = 11;
[INFO] [stdout]   |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_PWM_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const DMA_PWM_DREQ: usize = 5;
[INFO] [stdout]   |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_TX_DREQ` is never used
[INFO] [stdout]  --> src/c2rust/dma_defs.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) const DMA_SPI_TX_DREQ: usize = 6;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SPI_RX_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) const DMA_SPI_RX_DREQ: usize = 7;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_BASE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const DMA_BASE: *const c_void = PHYS_REG_BASE.wrapping_offset(0x007000);
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CS` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) const DMA_CS: usize = 0x00;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CONBLK_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) const DMA_CONBLK_AD: usize = 0x04;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TI` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(crate) const DMA_TI: usize = 0x08;
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const DMA_SRCE_AD: usize = 0x0c;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEST_AD` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const DMA_DEST_AD: usize = 0x10;
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_TXFR_LEN` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const DMA_TXFR_LEN: usize = 0x14;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_STRIDE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const DMA_STRIDE: usize = 0x18;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_NEXTCONBK` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const DMA_NEXTCONBK: usize = 0x1c;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_DEBUG` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const DMA_DEBUG: usize = 0x20;
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_ENABLE` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) const DMA_ENABLE: usize = 0xff0;
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_CB_DEST_INC` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(crate) const DMA_CB_DEST_INC: usize = 1 << 4;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA_SRCE_DREQ` is never used
[INFO] [stdout]   --> src/c2rust/dma_defs.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub(crate) const DMA_SRCE_DREQ: usize = 1 << 10;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) const SMI_DSR1: usize = 0x18; // Read settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW1` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) const SMI_DSW1: usize = 0x1c; // Write settings device 1
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub(crate) const SMI_DSR2: usize = 0x20; // Read settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW2` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) const SMI_DSW2: usize = 0x24; // Write settings device 2
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSR3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) const SMI_DSR3: usize = 0x28; // Read settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_DSW3` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const SMI_DSW3: usize = 0x2c; // Write settings device 3
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_FD` is never used
[INFO] [stdout]   --> src/c2rust/smi_defs.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const SMI_FD: usize = 0x40; // FIFO debug
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_18_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:229:18
[INFO] [stdout]     |
[INFO] [stdout] 229 | pub(crate) const SMI_18_BITS: usize = 2;
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMI_9_BITS` is never used
[INFO] [stdout]    --> src/c2rust/smi_defs.rs:230:18
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub(crate) const SMI_9_BITS: usize = 3;
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(path_statements)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: path statement with no effect
[INFO] [stdout]    --> src/c2rust/rpi_dma_utils.rs:645:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |         i;
[INFO] [stdout]     |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:109:16
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 109 |     map_periph(&raw mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:110:16
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 110 |     map_periph(&raw mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 111 |     map_periph(&raw mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 112 |     map_periph(&raw mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int);
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&mut vc_mem);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 131 |     unmap_periph_mem(&raw mut vc_mem);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&mut smi_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 132 |     unmap_periph_mem(&raw mut smi_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&mut dma_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unmap_periph_mem(&raw mut dma_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&mut gpio_regs);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 134 |     unmap_periph_mem(&raw mut gpio_regs);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:321:22
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                      ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 321 |     map_uncached_mem(&raw mut vc_mem, VC_MEM_SIZE as c_int);
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:322:19
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 322 |     setup_smi_dma(&raw mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int);
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:326:15
[INFO] [stdout]     |
[INFO] [stdout] 326 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |         led_count,
[INFO] [stdout]     |         ^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:349:12
[INFO] [stdout]     |
[INFO] [stdout] 349 |     return tx_buffer.as_mut_ptr();
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:386:46
[INFO] [stdout]     |
[INFO] [stdout] 386 |       let mut tx_offset: *mut uint16_t = &mut *tx_buffer
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 387 | |         .as_mut_ptr()
[INFO] [stdout]     | |_____________________^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:407:15
[INFO] [stdout]     |
[INFO] [stdout] 407 |         &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:415:5
[INFO] [stdout]     |
[INFO] [stdout] 415 |     color_buffer.fill([color_t { packed: 0 }; 512]);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 427 |         tx_buffer.as_mut_ptr() as *const libc::c_void,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/c2rust/smileds.rs:430:15
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&mut vc_mem);
[INFO] [stdout]     |               ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 430 |     start_smi(&raw mut vc_mem);
[INFO] [stdout]     |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.76s
[INFO] running `Command { std: "docker" "inspect" "9c8002e482dfd1aadf216e83422f2573e9299c47534373dd984698214a206a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c8002e482dfd1aadf216e83422f2573e9299c47534373dd984698214a206a2d", kill_on_drop: false }`
[INFO] [stdout] 9c8002e482dfd1aadf216e83422f2573e9299c47534373dd984698214a206a2d
