[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/26e4110e7489f4dcc4e43196c7cf80249e0aeb9e against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffavilo%2Frpi-ws2811-smi-rust" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/favilo/rpi-ws2811-smi-rust on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-0-tc2/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-0-tc2/source/Cargo.toml [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" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8f4a86983623a247ddecce2e0ea3f5d29cfcdeabf9ba574d8607bcb8d8990a35 [INFO] running `Command { std: "docker" "start" "-a" "8f4a86983623a247ddecce2e0ea3f5d29cfcdeabf9ba574d8607bcb8d8990a35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8f4a86983623a247ddecce2e0ea3f5d29cfcdeabf9ba574d8607bcb8d8990a35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f4a86983623a247ddecce2e0ea3f5d29cfcdeabf9ba574d8607bcb8d8990a35", kill_on_drop: false }` [INFO] [stdout] 8f4a86983623a247ddecce2e0ea3f5d29cfcdeabf9ba574d8607bcb8d8990a35 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 34277a7c06c2a9e84ac19134fc548f16466efce8c1e50c4207257ee85f40834f [INFO] running `Command { std: "docker" "start" "-a" "34277a7c06c2a9e84ac19134fc548f16466efce8c1e50c4207257ee85f40834f", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.149 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Compiling prettyplease v0.2.15 [INFO] [stderr] Compiling rustix v0.38.20 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling linux-raw-sys v0.4.10 [INFO] [stderr] Compiling bitflags v2.4.1 [INFO] [stderr] Compiling memchr v2.6.4 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling libloading v0.7.4 [INFO] [stderr] Compiling clang-sys v1.6.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling either v1.9.0 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling home v0.5.5 [INFO] [stderr] Compiling syn v2.0.38 [INFO] [stderr] Compiling bindgen v0.68.1 [INFO] [stderr] Compiling log v0.4.20 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling shlex v1.2.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling regex-automata v0.4.3 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Compiling thiserror v1.0.49 [INFO] [stderr] Compiling anyhow v1.0.75 [INFO] [stderr] Checking nix v0.27.1 [INFO] [stderr] Checking memmap2 v0.9.0 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Compiling regex v1.10.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 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Fixed build.rs (1 fix) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rpi_ws2811_smi` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/c2rust/dma_defs.rs [INFO] [stderr] * src/c2rust/smi_defs.rs [INFO] [stderr] * src/c2rust/smileds.rs [INFO] [stderr] * src/consts.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/consts.rs:57:6 [INFO] [stderr] | [INFO] [stderr] 57 | ($n: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/consts.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | ($n: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/consts.rs:69:6 [INFO] [stderr] | [INFO] [stderr] 69 | ($n: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:36:6 [INFO] [stderr] | [INFO] [stderr] 36 | ($chan:expr_2021, $reg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:36:23 [INFO] [stderr] | [INFO] [stderr] 36 | ($chan:expr_2021, $reg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:46:6 [INFO] [stderr] | [INFO] [stderr] 46 | ($n:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ($mp: expr_2021, $a: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | ($mp: expr_2021, $a: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:61:6 [INFO] [stderr] | [INFO] [stderr] 61 | ($a: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:67:6 [INFO] [stderr] | [INFO] [stderr] 67 | ($m: expr_2021, $x: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | ($m: expr_2021, $x: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:213:20 [INFO] [stderr] | [INFO] [stderr] 213 | ($name: ident, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:6 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:24 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:43 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:61 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:3:7 [INFO] [stderr] | [INFO] [stderr] 3 | #[cfg(rpi4)] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:5:11 [INFO] [stderr] | [INFO] [stderr] 5 | #[cfg(not(rpi4))] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:42:7 [INFO] [stderr] | [INFO] [stderr] 42 | #[cfg(rpi4)] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi23` [INFO] [stderr] --> src/consts.rs:44:7 [INFO] [stderr] | [INFO] [stderr] 44 | #[cfg(rpi23)] [INFO] [stderr] | ^^^^^ help: found config with similar value: `feature = "rpi23"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi23` [INFO] [stderr] --> src/consts.rs:46:15 [INFO] [stderr] | [INFO] [stderr] 46 | #[cfg(not(any(rpi23, rpi4)))] [INFO] [stderr] | ^^^^^ help: found config with similar value: `feature = "rpi23"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | #[cfg(not(any(rpi23, rpi4)))] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `DMA_REG` [INFO] [stderr] --> src/c2rust/dma_defs.rs:35:14 [INFO] [stderr] | [INFO] [stderr] 35 | macro_rules! DMA_REG { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `DMA_PRIORITY` [INFO] [stderr] --> src/c2rust/dma_defs.rs:45:14 [INFO] [stderr] | [INFO] [stderr] 45 | macro_rules! DMA_PRIORITY { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `BUS_PHYS_ADDR` [INFO] [stderr] --> src/c2rust/dma_defs.rs:60:14 [INFO] [stderr] | [INFO] [stderr] 60 | macro_rules! BUS_PHYS_ADDR { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `set_bits` [INFO] [stderr] --> src/c2rust/smi_defs.rs:218:14 [INFO] [stderr] | [INFO] [stderr] 218 | macro_rules! set_bits { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 108 | map_periph(addr_of_mut!(gpio_regs), GPIO_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:109:16 [INFO] [stderr] | [INFO] [stderr] 109 | map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 109 | map_periph(addr_of_mut!(dma_regs), DMA_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:110:16 [INFO] [stderr] | [INFO] [stderr] 110 | map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 110 | map_periph(addr_of_mut!(clk_regs), CLK_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 111 | map_periph(addr_of_mut!(smi_regs), SMI_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:130:22 [INFO] [stderr] | [INFO] [stderr] 130 | unmap_periph_mem(&mut vc_mem); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 130 | unmap_periph_mem(addr_of_mut!(vc_mem)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:131:22 [INFO] [stderr] | [INFO] [stderr] 131 | unmap_periph_mem(&mut smi_regs); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 131 | unmap_periph_mem(addr_of_mut!(smi_regs)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:132:22 [INFO] [stderr] | [INFO] [stderr] 132 | unmap_periph_mem(&mut dma_regs); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 132 | unmap_periph_mem(addr_of_mut!(dma_regs)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:133:22 [INFO] [stderr] | [INFO] [stderr] 133 | unmap_periph_mem(&mut gpio_regs); [INFO] [stderr] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 133 | unmap_periph_mem(addr_of_mut!(gpio_regs)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:320:22 [INFO] [stderr] | [INFO] [stderr] 320 | map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 320 | map_uncached_mem(addr_of_mut!(vc_mem), VC_MEM_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:321:19 [INFO] [stderr] | [INFO] [stderr] 321 | setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 321 | setup_smi_dma(addr_of_mut!(vc_mem), TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:429:15 [INFO] [stderr] | [INFO] [stderr] 429 | start_smi(&mut vc_mem); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 429 | start_smi(addr_of_mut!(vc_mem)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:119:55 [INFO] [stderr] | [INFO] [stderr] 119 | pub unsafe extern "C" fn terminate(mut _sig: c_int) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 127 | ::core::ptr::write_volatile(REG32!(smi_regs, SMI_CS), 0 as c_int as uint32_t); [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] 145 | let mut divi: c_int = ns / 2 as c_int; [INFO] [stderr] 146 | smi_cs = REG32!(smi_regs, SMI_CS) as *mut SMI_CS_REG; [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 147 | smi_l = REG32!(smi_regs, SMI_L) as *mut SMI_L_REG; [INFO] [stderr] | ----------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 148 | smi_a = REG32!(smi_regs, SMI_A) as *mut SMI_A_REG; [INFO] [stderr] | ----------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 149 | smi_d = REG32!(smi_regs, SMI_D) as *mut SMI_D_REG; [INFO] [stderr] | ----------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 150 | smi_dmc = REG32!(smi_regs, SMI_DMC) as *mut SMI_DMC_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 151 | smi_dsr = REG32!(smi_regs, SMI_DSR0) as *mut SMI_DSR_REG; [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 152 | smi_dsw = REG32!(smi_regs, SMI_DSW0) as *mut SMI_DSW_REG; [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 153 | smi_dcs = REG32!(smi_regs, SMI_DCS) as *mut SMI_DCS_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 154 | smi_dca = REG32!(smi_regs, SMI_DCA) as *mut SMI_DCA_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 155 | smi_dcd = REG32!(smi_regs, SMI_DCD) as *mut SMI_DCD_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 191 | if REG32!(clk_regs, CLK_SMI_DIV).read_volatile() != (divi << 12) as uint32_t { [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 192 | ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 196 | while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) != 0 {} [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 198 | ((REG32!(clk_regs, CLK_SMI_DIV) as *mut *mut uint32_t).read_volatile()) [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 201 | ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 204 | while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) == 0 {} [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: aborting due to 16 previous errors; 38 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:64:3 [INFO] [stdout] | [INFO] [stdout] 64 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 64 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 77 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:88:3 [INFO] [stdout] | [INFO] [stdout] 88 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 88 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:97:3 [INFO] [stdout] | [INFO] [stdout] 97 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 97 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:106:3 [INFO] [stdout] | [INFO] [stdout] 106 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 106 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:115:3 [INFO] [stdout] | [INFO] [stdout] 115 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 115 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:124:3 [INFO] [stdout] | [INFO] [stdout] 124 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 124 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:144:3 [INFO] [stdout] | [INFO] [stdout] 144 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 144 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:190:3 [INFO] [stdout] | [INFO] [stdout] 190 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 190 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:203:3 [INFO] [stdout] | [INFO] [stdout] 203 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 203 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:212:3 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:235:3 [INFO] [stdout] | [INFO] [stdout] 235 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 235 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:246:3 [INFO] [stdout] | [INFO] [stdout] 246 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 246 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:259:3 [INFO] [stdout] | [INFO] [stdout] 259 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 259 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:266:3 [INFO] [stdout] | [INFO] [stdout] 266 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 266 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:282:3 [INFO] [stdout] | [INFO] [stdout] 282 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 282 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:294:3 [INFO] [stdout] | [INFO] [stdout] 294 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 294 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:300:3 [INFO] [stdout] | [INFO] [stdout] 300 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 300 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:340:3 [INFO] [stdout] | [INFO] [stdout] 340 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 340 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:394:3 [INFO] [stdout] | [INFO] [stdout] 394 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 394 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:444:3 [INFO] [stdout] | [INFO] [stdout] 444 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 444 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:490:3 [INFO] [stdout] | [INFO] [stdout] 490 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 490 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:536:3 [INFO] [stdout] | [INFO] [stdout] 536 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 536 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:626:3 [INFO] [stdout] | [INFO] [stdout] 626 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 626 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:649:3 [INFO] [stdout] | [INFO] [stdout] 649 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 649 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:688:3 [INFO] [stdout] | [INFO] [stdout] 688 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 688 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:705:3 [INFO] [stdout] | [INFO] [stdout] 705 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 705 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:726:3 [INFO] [stdout] | [INFO] [stdout] 726 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 726 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:780:3 [INFO] [stdout] | [INFO] [stdout] 780 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 780 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:791:3 [INFO] [stdout] | [INFO] [stdout] 791 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 791 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:802:3 [INFO] [stdout] | [INFO] [stdout] 802 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 802 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:818:3 [INFO] [stdout] | [INFO] [stdout] 818 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 818 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:847:3 [INFO] [stdout] | [INFO] [stdout] 847 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 847 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:900:3 [INFO] [stdout] | [INFO] [stdout] 900 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 900 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:908:3 [INFO] [stdout] | [INFO] [stdout] 908 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 908 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:59:3 [INFO] [stdout] | [INFO] [stdout] 59 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 59 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:68:3 [INFO] [stdout] | [INFO] [stdout] 68 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 68 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 77 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:79:3 [INFO] [stdout] | [INFO] [stdout] 79 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 79 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:81:3 [INFO] [stdout] | [INFO] [stdout] 81 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 81 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:83:3 [INFO] [stdout] | [INFO] [stdout] 83 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 83 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:85:3 [INFO] [stdout] | [INFO] [stdout] 85 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 85 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:87:3 [INFO] [stdout] | [INFO] [stdout] 87 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 87 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:89:3 [INFO] [stdout] | [INFO] [stdout] 89 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 89 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:91:3 [INFO] [stdout] | [INFO] [stdout] 91 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 91 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:93:3 [INFO] [stdout] | [INFO] [stdout] 93 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 93 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:95:3 [INFO] [stdout] | [INFO] [stdout] 95 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 95 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:97:3 [INFO] [stdout] | [INFO] [stdout] 97 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 97 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:99:3 [INFO] [stdout] | [INFO] [stdout] 99 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 99 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:101:3 [INFO] [stdout] | [INFO] [stdout] 101 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 101 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:104:3 [INFO] [stdout] | [INFO] [stdout] 104 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 104 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:107:3 [INFO] [stdout] | [INFO] [stdout] 107 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 107 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:114:3 [INFO] [stdout] | [INFO] [stdout] 114 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 114 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:119:3 [INFO] [stdout] | [INFO] [stdout] 119 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 119 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:138:3 [INFO] [stdout] | [INFO] [stdout] 138 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 138 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:242:3 [INFO] [stdout] | [INFO] [stdout] 242 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 242 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:276:3 [INFO] [stdout] | [INFO] [stdout] 276 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 276 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:287:3 [INFO] [stdout] | [INFO] [stdout] 287 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 287 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:302:3 [INFO] [stdout] | [INFO] [stdout] 302 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 302 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:347:3 [INFO] [stdout] | [INFO] [stdout] 347 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 347 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:352:3 [INFO] [stdout] | [INFO] [stdout] 352 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 352 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:404:3 [INFO] [stdout] | [INFO] [stdout] 404 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 404 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:423:3 [INFO] [stdout] | [INFO] [stdout] 423 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 423 | #[unsafe(no_mangle)] [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: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [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 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 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 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 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 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 for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/consts.rs:57:10 [INFO] [stdout] | [INFO] [stdout] 57 | ($n: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 57 | ($n: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/consts.rs:63:10 [INFO] [stdout] | [INFO] [stdout] 63 | ($n: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 63 | ($n: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/consts.rs:69:10 [INFO] [stdout] | [INFO] [stdout] 69 | ($n: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 69 | ($n: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr, $reg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr_2021, $reg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:36:23 [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr, $reg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr, $reg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | ($n:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 46 | ($n:expr_2021) => { [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr, $a: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr_2021, $a: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr, $a: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr, $a: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | ($a: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 62 | ($a: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:68:10 [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr, $x: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr_2021, $x: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr, $x: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr, $x: expr_2021) => { [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: extern blocks should be unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 3 | | fn printf(_: *const libc::c_char, _: ...) -> libc::c_int; [INFO] [stdout] 4 | | fn close(_: libc::c_int) -> libc::c_int; [INFO] [stdout] 5 | | fn usleep(_: libc::c_uint) -> libc::c_int; [INFO] [stdout] ... | [INFO] [stdout] 17 | | fn fail(s: *mut libc::c_char); [INFO] [stdout] 18 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:213:29 [INFO] [stdout] | [INFO] [stdout] 213 | ($name: ident, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 213 | ($name: ident, $offset: expr_2021) => { [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr_2021, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr_2021, $bits: expr, $offset: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:40 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr_2021, $offset: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:55 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr_2021) => { [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: extern blocks should be unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 33 | | fn memcpy(_: *mut libc::c_void, _: *const libc::c_void, _: libc::c_ulong) -> *mut libc::c_void; [INFO] [stdout] 34 | | fn memset(_: *mut libc::c_void, _: c_int, _: libc::c_ulong) -> *mut libc::c_void; [INFO] [stdout] 35 | | fn usleep(__useconds: __useconds_t) -> c_int; [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 109 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 110 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 111 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 112 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 131 | unmap_periph_mem(addr_of_mut!(vc_mem)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 132 | unmap_periph_mem(addr_of_mut!(smi_regs)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 133 | unmap_periph_mem(addr_of_mut!(dma_regs)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 134 | unmap_periph_mem(addr_of_mut!(gpio_regs)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 321 | map_uncached_mem(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 322 | setup_smi_dma(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 430 | start_smi(addr_of_mut!(vc_mem)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | (*mp).phys = phys; [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:125:1 [INFO] [stdout] | [INFO] [stdout] 125 | / pub unsafe extern "C" fn map_periph( [INFO] [stdout] 126 | | mut mp: *mut MEM_MAP, [INFO] [stdout] 127 | | mut phys: *mut libc::c_void, [INFO] [stdout] 128 | | mut size: libc::c_int, [INFO] [stdout] 129 | | ) -> *mut libc::c_void { [INFO] [stdout] | |______________________^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | (*mp).virt = map_segment(phys, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:141:18 [INFO] [stdout] | [INFO] [stdout] 141 | (*mp).virt = map_segment(phys, (*mp).size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:141:36 [INFO] [stdout] | [INFO] [stdout] 141 | (*mp).virt = map_segment(phys, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | return (*mp).virt; [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:145:1 [INFO] [stdout] | [INFO] [stdout] 145 | / pub unsafe extern "C" fn map_uncached_mem( [INFO] [stdout] 146 | | mut mp: *mut MEM_MAP, [INFO] [stdout] 147 | | mut size: libc::c_int, [INFO] [stdout] 148 | | ) -> *mut libc::c_void { [INFO] [stdout] | |______________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | (*mp).fd = open_mbox(); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::open_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 156 | (*mp).fd = open_mbox(); [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::alloc_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:158:14 [INFO] [stdout] | [INFO] [stdout] 158 | .h = alloc_vc_mem( [INFO] [stdout] | ______________^ [INFO] [stdout] 159 | | (*mp).fd, [INFO] [stdout] 160 | | (*mp).size as uint32_t, [INFO] [stdout] 161 | | (MEM_FLAG_DIRECT as libc::c_int | MEM_FLAG_ZERO as libc::c_int) as VC_ALLOC_FLAGS, [INFO] [stdout] 162 | | ) as libc::c_int; [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | (*mp).fd, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | (*mp).size as uint32_t, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:163:14 [INFO] [stdout] | [INFO] [stdout] 163 | ret = if (*mp).h > 0 as libc::c_int [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::lock_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:37 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:47 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:166:15 [INFO] [stdout] | [INFO] [stdout] 166 | !((*mp).bus).is_null() [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:170:25 [INFO] [stdout] | [INFO] [stdout] 170 | .virt = map_segment( [INFO] [stdout] | _________________________^ [INFO] [stdout] 171 | | ((*mp).bus as uint32_t & !(0xc0000000 as libc::c_uint)) [INFO] [stdout] 172 | | as *mut libc::c_void, [INFO] [stdout] 173 | | (*mp).size, [INFO] [stdout] 174 | | ); [INFO] [stdout] | |_____________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:171:18 [INFO] [stdout] | [INFO] [stdout] 171 | ((*mp).bus as uint32_t & !(0xc0000000 as libc::c_uint)) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:173:17 [INFO] [stdout] | [INFO] [stdout] 173 | (*mp).size, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:175:15 [INFO] [stdout] | [INFO] [stdout] 175 | !((*mp).virt).is_null() [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | (*mp).virt [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | / printf( [INFO] [stdout] 183 | | b"VC mem handle %u, phys %p, virt %p\n\0" as *const u8 as *const libc::c_char, [INFO] [stdout] 184 | | (*mp).h, [INFO] [stdout] 185 | | (*mp).bus, [INFO] [stdout] 186 | | (*mp).virt, [INFO] [stdout] 187 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 184 | (*mp).h, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | (*mp).bus, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | (*mp).virt, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 193 | if (*mp).fd != 0 { [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:191:1 [INFO] [stdout] | [INFO] [stdout] 191 | pub unsafe extern "C" fn unmap_periph_mem(mut mp: *mut MEM_MAP) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:194:13 [INFO] [stdout] | [INFO] [stdout] 194 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:194:27 [INFO] [stdout] | [INFO] [stdout] 194 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:194:39 [INFO] [stdout] | [INFO] [stdout] 194 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unlock_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | unlock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:195:27 [INFO] [stdout] | [INFO] [stdout] 195 | unlock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:195:37 [INFO] [stdout] | [INFO] [stdout] 195 | unlock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::free_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | free_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:196:25 [INFO] [stdout] | [INFO] [stdout] 196 | free_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:196:35 [INFO] [stdout] | [INFO] [stdout] 196 | free_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::close_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | close_mbox((*mp).fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:197:24 [INFO] [stdout] | [INFO] [stdout] 197 | close_mbox((*mp).fd); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:199:27 [INFO] [stdout] | [INFO] [stdout] 199 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:199:39 [INFO] [stdout] | [INFO] [stdout] 199 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::gpio_mode` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:209:5 [INFO] [stdout] | [INFO] [stdout] 209 | gpio_mode(pin, mode); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:204:1 [INFO] [stdout] | [INFO] [stdout] 204 | / pub unsafe extern "C" fn gpio_set( [INFO] [stdout] 205 | | mut pin: libc::c_int, [INFO] [stdout] 206 | | mut mode: libc::c_int, [INFO] [stdout] 207 | | mut pull: libc::c_int, [INFO] [stdout] 208 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::gpio_pull` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:210:5 [INFO] [stdout] | [INFO] [stdout] 210 | gpio_pull(pin, pull); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:214:34 [INFO] [stdout] | [INFO] [stdout] 214 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 215 | | .wrapping_add(0x98 as libc::c_int as uint32_t) as *mut uint32_t) [INFO] [stdout] 216 | | .offset((pin / 32 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:213:1 [INFO] [stdout] | [INFO] [stdout] 213 | pub unsafe extern "C" fn gpio_pull(mut pin: libc::c_int, mut pull: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:214:36 [INFO] [stdout] | [INFO] [stdout] 214 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | / ::core::ptr::write_volatile( [INFO] [stdout] 218 | | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] 219 | | as *mut uint32_t, [INFO] [stdout] 220 | | pull as uint32_t, [INFO] [stdout] 221 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:218:10 [INFO] [stdout] | [INFO] [stdout] 218 | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | usleep(2 as libc::c_int as libc::c_uint); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | / ::core::ptr::write_volatile( [INFO] [stdout] 224 | | reg, [INFO] [stdout] 225 | | ((1 as libc::c_int) << pin % 32 as libc::c_int) as uint32_t, [INFO] [stdout] 226 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 227 | usleep(2 as libc::c_int as libc::c_uint); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:228:5 [INFO] [stdout] | [INFO] [stdout] 228 | / ::core::ptr::write_volatile( [INFO] [stdout] 229 | | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] 230 | | as *mut uint32_t, [INFO] [stdout] 231 | | 0 as libc::c_int as uint32_t, [INFO] [stdout] 232 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:229:10 [INFO] [stdout] | [INFO] [stdout] 229 | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:233:5 [INFO] [stdout] | [INFO] [stdout] 233 | ::core::ptr::write_volatile(reg, 0 as libc::c_int as uint32_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:237:34 [INFO] [stdout] | [INFO] [stdout] 237 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 238 | | .wrapping_add(0 as libc::c_int as uint32_t) as *mut uint32_t) [INFO] [stdout] 239 | | .offset((pin / 10 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:236:1 [INFO] [stdout] | [INFO] [stdout] 236 | pub unsafe extern "C" fn gpio_mode(mut pin: libc::c_int, mut mode: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:237:36 [INFO] [stdout] | [INFO] [stdout] 237 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:241:5 [INFO] [stdout] | [INFO] [stdout] 241 | / ::core::ptr::write_volatile( [INFO] [stdout] 242 | | reg, [INFO] [stdout] 243 | | *reg & !((7 as libc::c_int) << shift) as uint32_t | (mode << shift) as uint32_t, [INFO] [stdout] 244 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | *reg & !((7 as libc::c_int) << shift) as uint32_t | (mode << shift) as uint32_t, [INFO] [stdout] | ^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:248:34 [INFO] [stdout] | [INFO] [stdout] 248 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 249 | | .wrapping_add( [INFO] [stdout] 250 | | (if val != 0 { 0x1c as libc::c_int } else { 0x28 as libc::c_int }) [INFO] [stdout] 251 | | as uint32_t, [INFO] [stdout] 252 | | ) as *mut uint32_t) [INFO] [stdout] 253 | | .offset((pin / 32 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:247:1 [INFO] [stdout] | [INFO] [stdout] 247 | pub unsafe extern "C" fn gpio_out(mut pin: libc::c_int, mut val: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:248:36 [INFO] [stdout] | [INFO] [stdout] 248 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / ::core::ptr::write_volatile( [INFO] [stdout] 255 | | reg, [INFO] [stdout] 256 | | ((1 as libc::c_int) << pin % 32 as libc::c_int) as uint32_t, [INFO] [stdout] 257 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:261:34 [INFO] [stdout] | [INFO] [stdout] 261 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 262 | | .wrapping_add(0x34 as libc::c_int as uint32_t) as *mut uint32_t) [INFO] [stdout] 263 | | .offset((pin / 32 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:260:1 [INFO] [stdout] | [INFO] [stdout] 260 | pub unsafe extern "C" fn gpio_in(mut pin: libc::c_int) -> uint8_t { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:261:36 [INFO] [stdout] | [INFO] [stdout] 261 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | return (*reg >> pin % 32 as libc::c_int & 1 as libc::c_int as uint32_t) as uint8_t; [INFO] [stdout] | ^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:271:9 [INFO] [stdout] | [INFO] [stdout] 271 | / printf( [INFO] [stdout] 272 | | b"%u:%-4s \0" as *const u8 as *const libc::c_char, [INFO] [stdout] 273 | | i, [INFO] [stdout] 274 | | gpio_mode_strs[(mode >> i * 3 as libc::c_int & 7 as libc::c_int as uint32_t) [INFO] [stdout] 275 | | as usize], [INFO] [stdout] 276 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:267:1 [INFO] [stdout] | [INFO] [stdout] 267 | pub unsafe extern "C" fn disp_mode_vals(mut mode: uint32_t) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | gpio_mode_strs[(mode >> i * 3 as libc::c_int & 7 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:280:5 [INFO] [stdout] | [INFO] [stdout] 280 | printf(b"\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::open` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:285:10 [INFO] [stdout] | [INFO] [stdout] 285 | fd = open(b"/dev/vcio\0" as *const u8 as *const libc::c_char, 0 as libc::c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:283:1 [INFO] [stdout] | [INFO] [stdout] 283 | pub unsafe extern "C" fn open_mbox() -> libc::c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::fail` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | / fail( [INFO] [stdout] 288 | | b"Error: can't open VC mailbox\n\0" as *const u8 as *const libc::c_char [INFO] [stdout] 289 | | as *mut libc::c_char, [INFO] [stdout] 290 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:297:9 [INFO] [stdout] | [INFO] [stdout] 297 | close(fd); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:295:1 [INFO] [stdout] | [INFO] [stdout] 295 | pub unsafe extern "C" fn close_mbox(mut fd: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | i = (*msgp).dlen / 4 as libc::c_int as uint32_t; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:301:1 [INFO] [stdout] | [INFO] [stdout] 301 | / pub unsafe extern "C" fn msg_mbox( [INFO] [stdout] 302 | | mut fd: libc::c_int, [INFO] [stdout] 303 | | mut msgp: *mut VC_MSG, [INFO] [stdout] 304 | | ) -> uint32_t { [INFO] [stdout] | |_____________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:308:16 [INFO] [stdout] | [INFO] [stdout] 308 | while i <= (*msgp).blen / 4 as libc::c_int as uint32_t { [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | (*msgp).uints[fresh0 as usize] = 0 as libc::c_int as uint32_t; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:314:5 [INFO] [stdout] | [INFO] [stdout] 314 | (*msgp) [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:315:17 [INFO] [stdout] | [INFO] [stdout] 315 | .len = ((*msgp).blen).wrapping_add(6 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | (*msgp).req = 0 as libc::c_int as uint32_t; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::ioctl` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | if ioctl( [INFO] [stdout] | ________^ [INFO] [stdout] 319 | | fd, [INFO] [stdout] 320 | | (((2 as libc::c_uint | 1 as libc::c_uint) << 30 as libc::c_int [INFO] [stdout] 321 | | | ((100 as libc::c_int) << 8 as libc::c_int) as libc::c_uint [INFO] [stdout] ... | [INFO] [stdout] 325 | | msgp, [INFO] [stdout] 326 | | ) < 0 as libc::c_int [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | printf(b"VC IOCTL failed\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:329:15 [INFO] [stdout] | [INFO] [stdout] 329 | } else if (*msgp).req & 0x80000000 as libc::c_uint [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | printf(b"VC IOCTL error\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:333:15 [INFO] [stdout] | [INFO] [stdout] 333 | } else if (*msgp).req == 0x80000001 as libc::c_uint { [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | printf(b"VC IOCTL partial error\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:336:15 [INFO] [stdout] | [INFO] [stdout] 336 | ret = (*msgp).uints[0 as libc::c_int as usize]; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:392:12 [INFO] [stdout] | [INFO] [stdout] 392 | return msg_mbox(fd, &mut msg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:341:1 [INFO] [stdout] | [INFO] [stdout] 341 | / pub unsafe extern "C" fn alloc_vc_mem( [INFO] [stdout] 342 | | mut fd: libc::c_int, [INFO] [stdout] 343 | | mut size: uint32_t, [INFO] [stdout] 344 | | mut flags: VC_ALLOC_FLAGS, [INFO] [stdout] 345 | | ) -> uint32_t { [INFO] [stdout] | |_____________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:439:9 [INFO] [stdout] | [INFO] [stdout] 439 | msg_mbox(fd, &mut msg) as *mut libc::c_void [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:395:1 [INFO] [stdout] | [INFO] [stdout] 395 | / pub unsafe extern "C" fn lock_vc_mem( [INFO] [stdout] 396 | | mut fd: libc::c_int, [INFO] [stdout] 397 | | mut h: libc::c_int, [INFO] [stdout] 398 | | ) -> *mut libc::c_void { [INFO] [stdout] | |______________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:488:24 [INFO] [stdout] | [INFO] [stdout] 488 | return if h != 0 { msg_mbox(fd, &mut msg) } else { 0 as libc::c_int as uint32_t }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:445:1 [INFO] [stdout] | [INFO] [stdout] 445 | / pub unsafe extern "C" fn unlock_vc_mem( [INFO] [stdout] 446 | | mut fd: libc::c_int, [INFO] [stdout] 447 | | mut h: libc::c_int, [INFO] [stdout] 448 | | ) -> uint32_t { [INFO] [stdout] | |_____________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:534:24 [INFO] [stdout] | [INFO] [stdout] 534 | return if h != 0 { msg_mbox(fd, &mut msg) } else { 0 as libc::c_int as uint32_t }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:491:1 [INFO] [stdout] | [INFO] [stdout] 491 | / pub unsafe extern "C" fn free_vc_mem( [INFO] [stdout] 492 | | mut fd: libc::c_int, [INFO] [stdout] 493 | | mut h: libc::c_int, [INFO] [stdout] 494 | | ) -> uint32_t { [INFO] [stdout] | |_____________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:620:5 [INFO] [stdout] | [INFO] [stdout] 620 | msg_mbox(fd, &mut msg1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:537:1 [INFO] [stdout] | [INFO] [stdout] 537 | / pub unsafe extern "C" fn set_vc_clock( [INFO] [stdout] 538 | | mut fd: libc::c_int, [INFO] [stdout] 539 | | mut id: libc::c_int, [INFO] [stdout] 540 | | mut freq: uint32_t, [INFO] [stdout] 541 | | ) -> uint32_t { [INFO] [stdout] | |_____________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::disp_vc_msg` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:621:5 [INFO] [stdout] | [INFO] [stdout] 621 | disp_vc_msg(&mut msg1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:622:5 [INFO] [stdout] | [INFO] [stdout] 622 | msg_mbox(fd, &mut msg2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::disp_vc_msg` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:623:5 [INFO] [stdout] | [INFO] [stdout] 623 | disp_vc_msg(&mut msg2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:629:5 [INFO] [stdout] | [INFO] [stdout] 629 | / printf( [INFO] [stdout] 630 | | b"VC msg len=%X, req=%X, tag=%X, blen=%x, dlen=%x, data \0" as *const u8 [INFO] [stdout] 631 | | as *const libc::c_char, [INFO] [stdout] 632 | | (*msgp).len, [INFO] [stdout] ... | [INFO] [stdout] 636 | | (*msgp).dlen, [INFO] [stdout] 637 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:627:1 [INFO] [stdout] | [INFO] [stdout] 627 | pub unsafe extern "C" fn disp_vc_msg(mut msgp: *mut VC_MSG) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 632 | (*msgp).len, [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:633:9 [INFO] [stdout] | [INFO] [stdout] 633 | (*msgp).req, [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:634:9 [INFO] [stdout] | [INFO] [stdout] 634 | (*msgp).tag, [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:635:9 [INFO] [stdout] | [INFO] [stdout] 635 | (*msgp).blen, [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:636:9 [INFO] [stdout] | [INFO] [stdout] 636 | (*msgp).dlen, [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:639:29 [INFO] [stdout] | [INFO] [stdout] 639 | while (i as uint32_t) < (*msgp).blen / 4 as libc::c_int as uint32_t { [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:640:9 [INFO] [stdout] | [INFO] [stdout] 640 | / printf( [INFO] [stdout] 641 | | b"%08X \0" as *const u8 as *const libc::c_char, [INFO] [stdout] 642 | | (*msgp).uints[i as usize], [INFO] [stdout] 643 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:642:13 [INFO] [stdout] | [INFO] [stdout] 642 | (*msgp).uints[i as usize], [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:647:5 [INFO] [stdout] | [INFO] [stdout] 647 | printf(b"\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::open` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:661:10 [INFO] [stdout] | [INFO] [stdout] 661 | fd = open( [INFO] [stdout] | __________^ [INFO] [stdout] 662 | | b"/dev/mem\0" as *const u8 as *const libc::c_char, [INFO] [stdout] 663 | | 0o2 as libc::c_int | 0o4010000 as libc::c_int | 0o2000000 as libc::c_int, [INFO] [stdout] 664 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:650:1 [INFO] [stdout] | [INFO] [stdout] 650 | / pub unsafe extern "C" fn map_segment( [INFO] [stdout] 651 | | mut addr: *mut libc::c_void, [INFO] [stdout] 652 | | mut size: libc::c_int, [INFO] [stdout] 653 | | ) -> *mut libc::c_void { [INFO] [stdout] | |______________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::fail` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:666:9 [INFO] [stdout] | [INFO] [stdout] 666 | / fail( [INFO] [stdout] 667 | | b"Error: can't open /dev/mem, run using sudo\n\0" as *const u8 [INFO] [stdout] 668 | | as *const libc::c_char as *mut libc::c_char, [INFO] [stdout] 669 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::mmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:671:11 [INFO] [stdout] | [INFO] [stdout] 671 | mem = mmap( [INFO] [stdout] | ___________^ [INFO] [stdout] 672 | | 0 as *mut libc::c_void, [INFO] [stdout] 673 | | size as size_t, [INFO] [stdout] 674 | | 2 as libc::c_int | 1 as libc::c_int, [INFO] [stdout] ... | [INFO] [stdout] 677 | | addr as uint32_t as off_t, [INFO] [stdout] 678 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:679:5 [INFO] [stdout] | [INFO] [stdout] 679 | close(fd); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::fail` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:681:9 [INFO] [stdout] | [INFO] [stdout] 681 | / fail( [INFO] [stdout] 682 | | b"Error: can't map memory\n\0" as *const u8 as *const libc::c_char [INFO] [stdout] 683 | | as *mut libc::c_char, [INFO] [stdout] 684 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::munmap` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:694:9 [INFO] [stdout] | [INFO] [stdout] 694 | / munmap( [INFO] [stdout] 695 | | mem, [INFO] [stdout] 696 | | (if size % 0x1000 as libc::c_int == 0 as libc::c_int { [INFO] [stdout] 697 | | size [INFO] [stdout] ... | [INFO] [stdout] 701 | | }) as size_t, [INFO] [stdout] 702 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:689:1 [INFO] [stdout] | [INFO] [stdout] 689 | / pub unsafe extern "C" fn unmap_segment( [INFO] [stdout] 690 | | mut mem: *mut libc::c_void, [INFO] [stdout] 691 | | mut size: libc::c_int, [INFO] [stdout] 692 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:707:26 [INFO] [stdout] | [INFO] [stdout] 707 | let ref mut fresh1 = *((dma_regs.virt as uint32_t) [INFO] [stdout] | __________________________^ [INFO] [stdout] 708 | | .wrapping_add(0xff0 as libc::c_int as uint32_t) as *mut uint32_t); [INFO] [stdout] | |_________________________________________________________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:706:1 [INFO] [stdout] | [INFO] [stdout] 706 | pub unsafe extern "C" fn enable_dma(mut chan: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:707:29 [INFO] [stdout] | [INFO] [stdout] 707 | let ref mut fresh1 = *((dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:709:5 [INFO] [stdout] | [INFO] [stdout] 709 | / ::core::ptr::write_volatile( [INFO] [stdout] 710 | | fresh1, [INFO] [stdout] 711 | | ::core::ptr::read_volatile::(fresh1 as *const uint32_t) [INFO] [stdout] 712 | | | ((1 as libc::c_int) << chan) as uint32_t, [INFO] [stdout] 713 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:711:9 [INFO] [stdout] | [INFO] [stdout] 711 | ::core::ptr::read_volatile::(fresh1 as *const uint32_t) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:714:5 [INFO] [stdout] | [INFO] [stdout] 714 | / ::core::ptr::write_volatile( [INFO] [stdout] 715 | | (dma_regs.virt as uint32_t) [INFO] [stdout] 716 | | .wrapping_add( [INFO] [stdout] 717 | | (if 0 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] ... | [INFO] [stdout] 723 | | ((1 as libc::c_int) << 31 as libc::c_int) as uint32_t, [INFO] [stdout] 724 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:715:10 [INFO] [stdout] | [INFO] [stdout] 715 | (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:733:5 [INFO] [stdout] | [INFO] [stdout] 733 | / ::core::ptr::write_volatile( [INFO] [stdout] 734 | | (dma_regs.virt as uint32_t) [INFO] [stdout] 735 | | .wrapping_add( [INFO] [stdout] 736 | | (if 0x4 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] ... | [INFO] [stdout] 744 | | .wrapping_add((*mp).bus as uint32_t), [INFO] [stdout] 745 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:727:1 [INFO] [stdout] | [INFO] [stdout] 727 | / pub unsafe extern "C" fn start_dma( [INFO] [stdout] 728 | | mut mp: *mut MEM_MAP, [INFO] [stdout] 729 | | mut chan: libc::c_int, [INFO] [stdout] 730 | | mut cbp: *mut DMA_CB, [INFO] [stdout] 731 | | mut csval: uint32_t, [INFO] [stdout] 732 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:734:10 [INFO] [stdout] | [INFO] [stdout] 734 | (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:743:27 [INFO] [stdout] | [INFO] [stdout] 743 | .wrapping_sub((*mp).virt as uint32_t) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:744:27 [INFO] [stdout] | [INFO] [stdout] 744 | .wrapping_add((*mp).bus as uint32_t), [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:746:5 [INFO] [stdout] | [INFO] [stdout] 746 | / ::core::ptr::write_volatile( [INFO] [stdout] 747 | | (dma_regs.virt as uint32_t) [INFO] [stdout] 748 | | .wrapping_add( [INFO] [stdout] 749 | | (if 0 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] ... | [INFO] [stdout] 755 | | 2 as libc::c_int as uint32_t, [INFO] [stdout] 756 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:747:10 [INFO] [stdout] | [INFO] [stdout] 747 | (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:757:5 [INFO] [stdout] | [INFO] [stdout] 757 | / ::core::ptr::write_volatile( [INFO] [stdout] 758 | | (dma_regs.virt as uint32_t) [INFO] [stdout] 759 | | .wrapping_add( [INFO] [stdout] 760 | | (if 0x20 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] ... | [INFO] [stdout] 766 | | 7 as libc::c_int as uint32_t, [INFO] [stdout] 767 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:758:10 [INFO] [stdout] | [INFO] [stdout] 758 | (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:768:5 [INFO] [stdout] | [INFO] [stdout] 768 | / ::core::ptr::write_volatile( [INFO] [stdout] 769 | | (dma_regs.virt as uint32_t) [INFO] [stdout] 770 | | .wrapping_add( [INFO] [stdout] 771 | | (if 0 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] ... | [INFO] [stdout] 777 | | 1 as libc::c_int as uint32_t | csval, [INFO] [stdout] 778 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:769:10 [INFO] [stdout] | [INFO] [stdout] 769 | (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:782:12 [INFO] [stdout] | [INFO] [stdout] 782 | return *((dma_regs.virt as uint32_t) [INFO] [stdout] | ____________^ [INFO] [stdout] 783 | | .wrapping_add( [INFO] [stdout] 784 | | (if 0x14 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] 785 | | 0xff0 as libc::c_int [INFO] [stdout] ... | [INFO] [stdout] 788 | | }) as uint32_t, [INFO] [stdout] 789 | | ) as *mut uint32_t); [INFO] [stdout] | |___________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:781:1 [INFO] [stdout] | [INFO] [stdout] 781 | pub unsafe extern "C" fn dma_transfer_len(mut chan: libc::c_int) -> uint32_t { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:782:15 [INFO] [stdout] | [INFO] [stdout] 782 | return *((dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:793:12 [INFO] [stdout] | [INFO] [stdout] 793 | return *((dma_regs.virt as uint32_t) [INFO] [stdout] | ____________^ [INFO] [stdout] 794 | | .wrapping_add( [INFO] [stdout] 795 | | (if 0 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] 796 | | 0xff0 as libc::c_int [INFO] [stdout] ... | [INFO] [stdout] 799 | | }) as uint32_t, [INFO] [stdout] 800 | | ) as *mut uint32_t) & 1 as libc::c_int as uint32_t; [INFO] [stdout] | |___________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:792:1 [INFO] [stdout] | [INFO] [stdout] 792 | pub unsafe extern "C" fn dma_active(mut chan: libc::c_int) -> uint32_t { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:793:15 [INFO] [stdout] | [INFO] [stdout] 793 | return *((dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:804:10 [INFO] [stdout] | [INFO] [stdout] 804 | if !(dma_regs.virt).is_null() { [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:803:1 [INFO] [stdout] | [INFO] [stdout] 803 | pub unsafe extern "C" fn stop_dma(mut chan: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:805:9 [INFO] [stdout] | [INFO] [stdout] 805 | / ::core::ptr::write_volatile( [INFO] [stdout] 806 | | (dma_regs.virt as uint32_t) [INFO] [stdout] 807 | | .wrapping_add( [INFO] [stdout] 808 | | (if 0 as libc::c_int == 0xff0 as libc::c_int { [INFO] [stdout] ... | [INFO] [stdout] 814 | | ((1 as libc::c_int) << 31 as libc::c_int) as uint32_t, [INFO] [stdout] 815 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:806:14 [INFO] [stdout] | [INFO] [stdout] 806 | (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:820:33 [INFO] [stdout] | [INFO] [stdout] 820 | let mut p: *mut uint32_t = (dma_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:819:1 [INFO] [stdout] | [INFO] [stdout] 819 | pub unsafe extern "C" fn disp_dma(mut chan: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:829:11 [INFO] [stdout] | [INFO] [stdout] 829 | while *(dma_regstrs[i as usize]).offset(0 as libc::c_int as isize) != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:829:12 [INFO] [stdout] | [INFO] [stdout] 829 | while *(dma_regstrs[i as usize]).offset(0 as libc::c_int as isize) != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:829:13 [INFO] [stdout] | [INFO] [stdout] 829 | while *(dma_regstrs[i as usize]).offset(0 as libc::c_int as isize) != 0 { [INFO] [stdout] | ^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:833:13 [INFO] [stdout] | [INFO] [stdout] 833 | p = p.offset(1); [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:834:9 [INFO] [stdout] | [INFO] [stdout] 834 | / printf( [INFO] [stdout] 835 | | b"%-7s %08X \0" as *const u8 as *const libc::c_char, [INFO] [stdout] 836 | | dma_regstrs[fresh2 as usize], [INFO] [stdout] 837 | | *fresh3, [INFO] [stdout] 838 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:836:13 [INFO] [stdout] | [INFO] [stdout] 836 | dma_regstrs[fresh2 as usize], [INFO] [stdout] | ^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:837:13 [INFO] [stdout] | [INFO] [stdout] 837 | *fresh3, [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:840:16 [INFO] [stdout] | [INFO] [stdout] 840 | || *(dma_regstrs[i as usize]).offset(0 as libc::c_int as isize) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:840:17 [INFO] [stdout] | [INFO] [stdout] 840 | || *(dma_regstrs[i as usize]).offset(0 as libc::c_int as isize) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:840:18 [INFO] [stdout] | [INFO] [stdout] 840 | || *(dma_regstrs[i as usize]).offset(0 as libc::c_int as isize) [INFO] [stdout] | ^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:843:13 [INFO] [stdout] | [INFO] [stdout] 843 | printf(b"\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::stop_pwm` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:853:5 [INFO] [stdout] | [INFO] [stdout] 853 | stop_pwm(); [INFO] [stdout] | ^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:848:1 [INFO] [stdout] | [INFO] [stdout] 848 | / pub unsafe extern "C" fn init_pwm( [INFO] [stdout] 849 | | mut freq: libc::c_int, [INFO] [stdout] 850 | | mut range: libc::c_int, [INFO] [stdout] 851 | | mut val: libc::c_int, [INFO] [stdout] 852 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:854:8 [INFO] [stdout] | [INFO] [stdout] 854 | if *((pwm_regs.virt as uint32_t).wrapping_add(0x4 as libc::c_int as uint32_t) [INFO] [stdout] | ________^ [INFO] [stdout] 855 | | as *mut uint32_t) & 0x100 as libc::c_int as uint32_t != 0 [INFO] [stdout] | |_________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:854:11 [INFO] [stdout] | [INFO] [stdout] 854 | if *((pwm_regs.virt as uint32_t).wrapping_add(0x4 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:857:9 [INFO] [stdout] | [INFO] [stdout] 857 | printf(b"PWM bus error\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:858:9 [INFO] [stdout] | [INFO] [stdout] 858 | / ::core::ptr::write_volatile( [INFO] [stdout] 859 | | (pwm_regs.virt as uint32_t).wrapping_add(0x4 as libc::c_int as uint32_t) [INFO] [stdout] 860 | | as *mut uint32_t, [INFO] [stdout] 861 | | 0x100 as libc::c_int as uint32_t, [INFO] [stdout] 862 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:859:14 [INFO] [stdout] | [INFO] [stdout] 859 | (pwm_regs.virt as uint32_t).wrapping_add(0x4 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:865:5 [INFO] [stdout] | [INFO] [stdout] 865 | / ::core::ptr::write_volatile( [INFO] [stdout] 866 | | (clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] 867 | | as *mut uint32_t, [INFO] [stdout] 868 | | (0x5a000000 as libc::c_int | (1 as libc::c_int) << 5 as libc::c_int) as uint32_t, [INFO] [stdout] 869 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:866:10 [INFO] [stdout] | [INFO] [stdout] 866 | (clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:870:11 [INFO] [stdout] | [INFO] [stdout] 870 | while *((clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] | ___________^ [INFO] [stdout] 871 | | as *mut uint32_t) & ((1 as libc::c_int) << 7 as libc::c_int) as uint32_t != 0 [INFO] [stdout] | |_________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:870:14 [INFO] [stdout] | [INFO] [stdout] 870 | while *((clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:873:5 [INFO] [stdout] | [INFO] [stdout] 873 | / ::core::ptr::write_volatile( [INFO] [stdout] 874 | | (clk_regs.virt as uint32_t).wrapping_add(0xa4 as libc::c_int as uint32_t) [INFO] [stdout] 875 | | as *mut uint32_t, [INFO] [stdout] 876 | | (0x5a000000 as libc::c_int | divi << 12 as libc::c_int) as uint32_t, [INFO] [stdout] 877 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:874:10 [INFO] [stdout] | [INFO] [stdout] 874 | (clk_regs.virt as uint32_t).wrapping_add(0xa4 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:878:5 [INFO] [stdout] | [INFO] [stdout] 878 | / ::core::ptr::write_volatile( [INFO] [stdout] 879 | | (clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] 880 | | as *mut uint32_t, [INFO] [stdout] 881 | | (0x5a000000 as libc::c_int | 6 as libc::c_int [INFO] [stdout] 882 | | | (1 as libc::c_int) << 4 as libc::c_int) as uint32_t, [INFO] [stdout] 883 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:879:10 [INFO] [stdout] | [INFO] [stdout] 879 | (clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:884:11 [INFO] [stdout] | [INFO] [stdout] 884 | while *((clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] | ___________^ [INFO] [stdout] 885 | | as *mut uint32_t) & ((1 as libc::c_int) << 7 as libc::c_int) as uint32_t [INFO] [stdout] | |_________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:884:14 [INFO] [stdout] | [INFO] [stdout] 884 | while *((clk_regs.virt as uint32_t).wrapping_add(0xa0 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:888:5 [INFO] [stdout] | [INFO] [stdout] 888 | usleep(100 as libc::c_int as libc::c_uint); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:889:5 [INFO] [stdout] | [INFO] [stdout] 889 | / ::core::ptr::write_volatile( [INFO] [stdout] 890 | | (pwm_regs.virt as uint32_t).wrapping_add(0x10 as libc::c_int as uint32_t) [INFO] [stdout] 891 | | as *mut uint32_t, [INFO] [stdout] 892 | | range as uint32_t, [INFO] [stdout] 893 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:890:10 [INFO] [stdout] | [INFO] [stdout] 890 | (pwm_regs.virt as uint32_t).wrapping_add(0x10 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:894:5 [INFO] [stdout] | [INFO] [stdout] 894 | / ::core::ptr::write_volatile( [INFO] [stdout] 895 | | (pwm_regs.virt as uint32_t).wrapping_add(0x18 as libc::c_int as uint32_t) [INFO] [stdout] 896 | | as *mut uint32_t, [INFO] [stdout] 897 | | val as uint32_t, [INFO] [stdout] 898 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:895:10 [INFO] [stdout] | [INFO] [stdout] 895 | (pwm_regs.virt as uint32_t).wrapping_add(0x18 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:902:5 [INFO] [stdout] | [INFO] [stdout] 902 | / ::core::ptr::write_volatile( [INFO] [stdout] 903 | | (pwm_regs.virt as uint32_t).wrapping_add(0 as libc::c_int as uint32_t) [INFO] [stdout] 904 | | as *mut uint32_t, [INFO] [stdout] 905 | | ((1 as libc::c_int) << 5 as libc::c_int | 1 as libc::c_int) as uint32_t, [INFO] [stdout] 906 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:901:1 [INFO] [stdout] | [INFO] [stdout] 901 | pub unsafe extern "C" fn start_pwm() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:903:10 [INFO] [stdout] | [INFO] [stdout] 903 | (pwm_regs.virt as uint32_t).wrapping_add(0 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:910:10 [INFO] [stdout] | [INFO] [stdout] 910 | if !(pwm_regs.virt).is_null() { [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:909:1 [INFO] [stdout] | [INFO] [stdout] 909 | pub unsafe extern "C" fn stop_pwm() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:911:9 [INFO] [stdout] | [INFO] [stdout] 911 | / ::core::ptr::write_volatile( [INFO] [stdout] 912 | | (pwm_regs.virt as uint32_t).wrapping_add(0 as libc::c_int as uint32_t) [INFO] [stdout] 913 | | as *mut uint32_t, [INFO] [stdout] 914 | | 0 as libc::c_int as uint32_t, [INFO] [stdout] 915 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:912:14 [INFO] [stdout] | [INFO] [stdout] 912 | (pwm_regs.virt as uint32_t).wrapping_add(0 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:916:9 [INFO] [stdout] | [INFO] [stdout] 916 | usleep(100 as libc::c_int as libc::c_uint); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_periph` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe extern "C" fn map_devices() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:109:21 [INFO] [stdout] | [INFO] [stdout] 109 | map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_periph` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_periph` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_periph` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:112:21 [INFO] [stdout] | [INFO] [stdout] 112 | map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:116:23 [INFO] [stdout] | [INFO] [stdout] 116 | log::error!("{}", *s); [INFO] [stdout] | ^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:115:1 [INFO] [stdout] | [INFO] [stdout] 115 | pub unsafe extern "C" fn fail(mut s: *mut libc::c_char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::terminate` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | terminate(0 as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:122:10 [INFO] [stdout] | [INFO] [stdout] 122 | if !(gpio_regs.virt).is_null() { [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:120:1 [INFO] [stdout] | [INFO] [stdout] 120 | pub unsafe extern "C" fn terminate(mut _sig: c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::gpio_mode` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | gpio_mode((LED_D0_PIN + i) as _, GPIO_IN as _); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:127:10 [INFO] [stdout] | [INFO] [stdout] 127 | if !(smi_regs.virt).is_null() { [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | ::core::ptr::write_volatile(REG32!(smi_regs, SMI_CS), 0 as c_int as uint32_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::stop_dma` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | stop_dma(DMA_CHAN as _); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_periph_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | unmap_periph_mem(&mut vc_mem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:131:27 [INFO] [stdout] | [INFO] [stdout] 131 | unmap_periph_mem(&mut vc_mem); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_periph_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | unmap_periph_mem(&mut smi_regs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:132:27 [INFO] [stdout] | [INFO] [stdout] 132 | unmap_periph_mem(&mut smi_regs); [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_periph_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | unmap_periph_mem(&mut dma_regs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:133:27 [INFO] [stdout] | [INFO] [stdout] 133 | unmap_periph_mem(&mut dma_regs); [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_periph_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | unmap_periph_mem(&mut gpio_regs); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:134:27 [INFO] [stdout] | [INFO] [stdout] 134 | unmap_periph_mem(&mut gpio_regs); [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | smi_cs = REG32!(smi_regs, SMI_CS) as *mut SMI_CS_REG; [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:139:1 [INFO] [stdout] | [INFO] [stdout] 139 | / pub unsafe extern "C" fn init_smi( [INFO] [stdout] 140 | | mut width: c_int, [INFO] [stdout] 141 | | mut ns: c_int, [INFO] [stdout] 142 | | mut setup: c_int, [INFO] [stdout] 143 | | mut strobe: c_int, [INFO] [stdout] 144 | | mut hold: c_int, [INFO] [stdout] 145 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | smi_l = REG32!(smi_regs, SMI_L) as *mut SMI_L_REG; [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | smi_a = REG32!(smi_regs, SMI_A) as *mut SMI_A_REG; [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | smi_d = REG32!(smi_regs, SMI_D) as *mut SMI_D_REG; [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | smi_dmc = REG32!(smi_regs, SMI_DMC) as *mut SMI_DMC_REG; [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | smi_dsr = REG32!(smi_regs, SMI_DSR0) as *mut SMI_DSR_REG; [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | smi_dsw = REG32!(smi_regs, SMI_DSW0) as *mut SMI_DSW_REG; [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 154 | smi_dcs = REG32!(smi_regs, SMI_DCS) as *mut SMI_DCS_REG; [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | smi_dca = REG32!(smi_regs, SMI_DCA) as *mut SMI_DCA_REG; [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | smi_dcd = REG32!(smi_regs, SMI_DCD) as *mut SMI_DCD_REG; [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:158:25 [INFO] [stdout] | [INFO] [stdout] 158 | let mut value = smi_a.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:158:25 [INFO] [stdout] | [INFO] [stdout] 158 | let mut value = smi_a.read_volatile(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | smi_a.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | smi_a.write_volatile(value); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:163:25 [INFO] [stdout] | [INFO] [stdout] 163 | let mut value = smi_l.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:163:25 [INFO] [stdout] | [INFO] [stdout] 163 | let mut value = smi_l.read_volatile(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | smi_l.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | smi_l.write_volatile(value); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:168:25 [INFO] [stdout] | [INFO] [stdout] 168 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:168:25 [INFO] [stdout] | [INFO] [stdout] 168 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:170:9 [INFO] [stdout] | [INFO] [stdout] 170 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:173:25 [INFO] [stdout] | [INFO] [stdout] 173 | let mut value = smi_dca.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:173:25 [INFO] [stdout] | [INFO] [stdout] 173 | let mut value = smi_dca.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | smi_dca.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | smi_dca.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:178:25 [INFO] [stdout] | [INFO] [stdout] 178 | let mut value = smi_dcs.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:178:25 [INFO] [stdout] | [INFO] [stdout] 178 | let mut value = smi_dcs.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | smi_dcs.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | smi_dcs.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | let mut value = smi_dsw.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:183:25 [INFO] [stdout] | [INFO] [stdout] 183 | let mut value = smi_dsw.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | smi_dsw.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | smi_dsw.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:188:25 [INFO] [stdout] | [INFO] [stdout] 188 | let mut value = smi_dsr.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:188:25 [INFO] [stdout] | [INFO] [stdout] 188 | let mut value = smi_dsr.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | smi_dsr.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | smi_dsr.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:192:8 [INFO] [stdout] | [INFO] [stdout] 192 | if REG32!(clk_regs, CLK_SMI_DIV).read_volatile() != (divi << 12) as uint32_t { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | / ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stdout] 194 | | .write_volatile((CLK_PASSWD | (1 << 5)) as uint32_t); [INFO] [stdout] | |________________________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | usleep(10 as __useconds_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:197:16 [INFO] [stdout] | [INFO] [stdout] 197 | while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) != 0 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | usleep(10 as __useconds_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | / ((REG32!(clk_regs, CLK_SMI_DIV) as *mut *mut uint32_t).read_volatile()) [INFO] [stdout] 200 | | .write_volatile((CLK_PASSWD | (divi << 12) as usize) as uint32_t); [INFO] [stdout] | |_____________________________________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | ((REG32!(clk_regs, CLK_SMI_DIV) as *mut *mut uint32_t).read_volatile()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | usleep(10 as __useconds_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | / ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stdout] 203 | | .write_volatile((CLK_PASSWD | 6 | (1 << 4)) as uint32_t); [INFO] [stdout] | |____________________________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | usleep(10 as __useconds_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:205:16 [INFO] [stdout] | [INFO] [stdout] 205 | while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) == 0 {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | usleep(100 as __useconds_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | if smi_cs.read_volatile().cs.seterr() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | if smi_cs.read_volatile().cs.seterr() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:209:8 [INFO] [stdout] | [INFO] [stdout] 209 | if smi_cs.read_volatile().cs.seterr() != 0 { [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:210:25 [INFO] [stdout] | [INFO] [stdout] 210 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:210:25 [INFO] [stdout] | [INFO] [stdout] 210 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | value.cs.set_seterr(1); [INFO] [stdout] | ^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:212:9 [INFO] [stdout] | [INFO] [stdout] 212 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:215:25 [INFO] [stdout] | [INFO] [stdout] 215 | let mut value = smi_dsw.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:215:25 [INFO] [stdout] | [INFO] [stdout] 215 | let mut value = smi_dsw.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:216:9 [INFO] [stdout] | [INFO] [stdout] 216 | value.dsw.set_wsetup(setup as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:217:9 [INFO] [stdout] | [INFO] [stdout] 217 | value.dsw.set_wstrobe(strobe as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | value.dsw.set_whold(hold as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | value.dsw.set_wwidth(width as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | smi_dsw.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | smi_dsw.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:223:25 [INFO] [stdout] | [INFO] [stdout] 223 | let mut value = smi_dsr.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:223:25 [INFO] [stdout] | [INFO] [stdout] 223 | let mut value = smi_dsr.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | value.dsr.set_rsetup(setup as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | value.dsr.set_rstrobe(strobe as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | value.dsr.set_rhold(hold as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | value.dsr.set_rwidth(width as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | smi_dsr.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | smi_dsr.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:231:25 [INFO] [stdout] | [INFO] [stdout] 231 | let mut value = smi_dmc.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:231:25 [INFO] [stdout] | [INFO] [stdout] 231 | let mut value = smi_dmc.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | value.dmc.set_panicw(8); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | value.dmc.set_panicr(8u32); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | value.dmc.set_reqw(REQUEST_THRESH as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | value.dmc.set_reqr(REQUEST_THRESH as uint32_t); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | smi_dmc.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | smi_dmc.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::gpio_mode` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | gpio_mode((LED_D0_PIN + i) as c_int, GPIO_ALT1 as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:244:32 [INFO] [stdout] | [INFO] [stdout] 244 | let mut cbs: *mut DMA_CB = (*mp).virt as *mut DMA_CB; [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:243:1 [INFO] [stdout] | [INFO] [stdout] 243 | pub unsafe extern "C" fn setup_smi_dma(mut mp: *mut MEM_MAP, mut nsamp: c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:245:5 [INFO] [stdout] | [INFO] [stdout] 245 | txdata = cbs.offset(1 as isize) as *mut uint16_t; [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:245:14 [INFO] [stdout] | [INFO] [stdout] 245 | txdata = cbs.offset(1 as isize) as *mut uint16_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:247:25 [INFO] [stdout] | [INFO] [stdout] 247 | let mut value = smi_dmc.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:247:25 [INFO] [stdout] | [INFO] [stdout] 247 | let mut value = smi_dmc.read_volatile(); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | value.dmc.set_dmaen(1); [INFO] [stdout] | ^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | smi_dmc.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | smi_dmc.write_volatile(value); [INFO] [stdout] | ^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:252:25 [INFO] [stdout] | [INFO] [stdout] 252 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:252:25 [INFO] [stdout] | [INFO] [stdout] 252 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | value.cs.set_enable(1); [INFO] [stdout] | ^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 254 | value.cs.set_clear(1); [INFO] [stdout] | ^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | value.cs.set_pxldat(1); [INFO] [stdout] | ^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:256:9 [INFO] [stdout] | [INFO] [stdout] 256 | value.cs.set_write(1); [INFO] [stdout] | ^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 257 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:260:25 [INFO] [stdout] | [INFO] [stdout] 260 | let mut value = smi_l.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:260:25 [INFO] [stdout] | [INFO] [stdout] 260 | let mut value = smi_l.read_volatile(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | / value [INFO] [stdout] 262 | | .l [INFO] [stdout] | |______________^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | smi_l.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | smi_l.write_volatile(value); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::enable_dma` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:266:5 [INFO] [stdout] | [INFO] [stdout] 266 | enable_dma(10); [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:267:5 [INFO] [stdout] | [INFO] [stdout] 267 | (*cbs.offset(0)).ti = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:267:7 [INFO] [stdout] | [INFO] [stdout] 267 | (*cbs.offset(0)).ti = [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:270:5 [INFO] [stdout] | [INFO] [stdout] 270 | (*cbs.offset(0)).tfr_len = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:270:7 [INFO] [stdout] | [INFO] [stdout] 270 | (*cbs.offset(0)).tfr_len = [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:272:5 [INFO] [stdout] | [INFO] [stdout] 272 | (*cbs.offset(0)).srce_ad = MEM_BUS_ADDR!((*mp), txdata); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:272:7 [INFO] [stdout] | [INFO] [stdout] 272 | (*cbs.offset(0)).srce_ad = MEM_BUS_ADDR!((*mp), txdata); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:272:53 [INFO] [stdout] | [INFO] [stdout] 272 | (*cbs.offset(0)).srce_ad = MEM_BUS_ADDR!((*mp), txdata); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:272:46 [INFO] [stdout] | [INFO] [stdout] 272 | (*cbs.offset(0)).srce_ad = MEM_BUS_ADDR!((*mp), txdata); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:273:5 [INFO] [stdout] | [INFO] [stdout] 273 | (*cbs.offset(0)).dest_ad = REG_BUS_ADDR!(smi_regs, SMI_D) as uint32_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:273:7 [INFO] [stdout] | [INFO] [stdout] 273 | (*cbs.offset(0)).dest_ad = REG_BUS_ADDR!(smi_regs, SMI_D) as uint32_t; [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:273:46 [INFO] [stdout] | [INFO] [stdout] 273 | (*cbs.offset(0)).dest_ad = REG_BUS_ADDR!(smi_regs, SMI_D) as uint32_t; [INFO] [stdout] | ^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:278:32 [INFO] [stdout] | [INFO] [stdout] 278 | let mut cbs: *mut DMA_CB = (*mp).virt as *mut DMA_CB; [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:277:1 [INFO] [stdout] | [INFO] [stdout] 277 | pub unsafe extern "C" fn start_smi(mut mp: *mut MEM_MAP) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::start_dma` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:279:5 [INFO] [stdout] | [INFO] [stdout] 279 | start_dma(mp, DMA_CHAN as c_int, &mut *cbs.offset(0), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:279:43 [INFO] [stdout] | [INFO] [stdout] 279 | start_dma(mp, DMA_CHAN as c_int, &mut *cbs.offset(0), 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:279:44 [INFO] [stdout] | [INFO] [stdout] 279 | start_dma(mp, DMA_CHAN as c_int, &mut *cbs.offset(0), 0); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::read_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:281:25 [INFO] [stdout] | [INFO] [stdout] 281 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:281:25 [INFO] [stdout] | [INFO] [stdout] 281 | let mut value = smi_cs.read_volatile(); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | value.cs.set_start(1 as c_int as uint32_t); [INFO] [stdout] | ^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | smi_cs.write_volatile(value); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:297:9 [INFO] [stdout] | [INFO] [stdout] 297 | *wp = (*wp).swap_bytes(); [INFO] [stdout] | ^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:288:1 [INFO] [stdout] | [INFO] [stdout] 288 | pub unsafe extern "C" fn swap_bytes(mut data: *mut libc::c_void, mut len: c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:297:15 [INFO] [stdout] | [INFO] [stdout] 297 | *wp = (*wp).swap_bytes(); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:298:14 [INFO] [stdout] | [INFO] [stdout] 298 | wp = wp.offset(1); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:307:5 [INFO] [stdout] | [INFO] [stdout] 307 | led_count = init_led_count as uint16_t; [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:303:1 [INFO] [stdout] | [INFO] [stdout] 303 | pub unsafe extern "C" fn leds_init(mut init_led_count: c_int) -> c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::map_devices` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | map_devices(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::init_smi` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:314:5 [INFO] [stdout] | [INFO] [stdout] 314 | / init_smi( [INFO] [stdout] 315 | | width as c_int, [INFO] [stdout] 316 | | SMI_TIMING[0] as c_int, [INFO] [stdout] 317 | | SMI_TIMING[1] as c_int, [INFO] [stdout] 318 | | SMI_TIMING[2] as c_int, [INFO] [stdout] 319 | | SMI_TIMING[3] as c_int, [INFO] [stdout] 320 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_uncached_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:321:27 [INFO] [stdout] | [INFO] [stdout] 321 | map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::setup_smi_dma` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:322:5 [INFO] [stdout] | [INFO] [stdout] 322 | setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:322:24 [INFO] [stdout] | [INFO] [stdout] 322 | setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:322:45 [INFO] [stdout] | [INFO] [stdout] 322 | setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:326:14 [INFO] [stdout] | [INFO] [stdout] 326 | &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [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] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:327:18 [INFO] [stdout] | [INFO] [stdout] 327 | for _ in 0..(led_count as usize * LED_NBITS) { [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | *tx_offset.offset(0) = 0xff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:330:14 [INFO] [stdout] | [INFO] [stdout] 330 | *tx_offset.offset(0) = 0xff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:332:13 [INFO] [stdout] | [INFO] [stdout] 332 | *tx_offset.offset(0) = 0xffff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:332:14 [INFO] [stdout] | [INFO] [stdout] 332 | *tx_offset.offset(0) = 0xffff; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | *tx_offset.offset(1 as c_int as isize) = 0x00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:334:10 [INFO] [stdout] | [INFO] [stdout] 334 | *tx_offset.offset(1 as c_int as isize) = 0x00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | *tx_offset.offset(2 as c_int as isize) = 0x00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:335:10 [INFO] [stdout] | [INFO] [stdout] 335 | *tx_offset.offset(2 as c_int as isize) = 0x00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | tx_offset = tx_offset.offset(BIT_NPULSES as isize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::leds_clear` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:338:5 [INFO] [stdout] | [INFO] [stdout] 338 | leds_clear(); [INFO] [stdout] | ^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:341:9 [INFO] [stdout] | [INFO] [stdout] 341 | led_count, [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:349:12 [INFO] [stdout] | [INFO] [stdout] 349 | return tx_buffer.as_mut_ptr(); [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:348:1 [INFO] [stdout] | [INFO] [stdout] 348 | pub unsafe extern "C" fn leds_get_buffer() -> *mut uint16_t { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:358:17 [INFO] [stdout] | [INFO] [stdout] 358 | if pixel >= led_count { [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:353:1 [INFO] [stdout] | [INFO] [stdout] 353 | / pub unsafe extern "C" fn leds_set_pixel( [INFO] [stdout] 354 | | mut channel: uint8_t, [INFO] [stdout] 355 | | mut pixel: uint16_t, [INFO] [stdout] 356 | | mut color: color_t, [INFO] [stdout] 357 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:366:8 [INFO] [stdout] | [INFO] [stdout] 366 | if color.component.a == 255 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:367:9 [INFO] [stdout] | [INFO] [stdout] 367 | color_buffer[channel as usize][pixel as usize] = color; [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:369:35 [INFO] [stdout] | [INFO] [stdout] 369 | let old_a: uint8_t = (1 - color.component.a) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:370:30 [INFO] [stdout] | [INFO] [stdout] 370 | color.component.r = (color_buffer[channel as usize][pixel as usize].component.r * old_a [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:370:30 [INFO] [stdout] | [INFO] [stdout] 370 | color.component.r = (color_buffer[channel as usize][pixel as usize].component.r * old_a [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:372:15 [INFO] [stdout] | [INFO] [stdout] 372 | + color.component.r * color.component.a / 255) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:372:35 [INFO] [stdout] | [INFO] [stdout] 372 | + color.component.r * color.component.a / 255) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:373:30 [INFO] [stdout] | [INFO] [stdout] 373 | color.component.g = (color_buffer[channel as usize][pixel as usize].component.g * old_a [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:373:30 [INFO] [stdout] | [INFO] [stdout] 373 | color.component.g = (color_buffer[channel as usize][pixel as usize].component.g * old_a [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:375:15 [INFO] [stdout] | [INFO] [stdout] 375 | + color.component.g * color.component.a / 255) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:375:35 [INFO] [stdout] | [INFO] [stdout] 375 | + color.component.g * color.component.a / 255) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:376:30 [INFO] [stdout] | [INFO] [stdout] 376 | color.component.b = (color_buffer[channel as usize][pixel as usize].component.b * old_a [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:376:30 [INFO] [stdout] | [INFO] [stdout] 376 | color.component.b = (color_buffer[channel as usize][pixel as usize].component.b * old_a [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:378:15 [INFO] [stdout] | [INFO] [stdout] 378 | + color.component.b * color.component.a / 255) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:378:35 [INFO] [stdout] | [INFO] [stdout] 378 | + color.component.b * color.component.a / 255) as uint8_t; [INFO] [stdout] | ^^^^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | color_buffer[channel as usize][pixel as usize] = color; [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:386:45 [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] 388 | | .offset(LED_TX_OFFSET!(pixel as usize) as isize); [INFO] [stdout] | |________________________________________________________^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [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] 388 | | .offset(LED_TX_OFFSET!(pixel as usize) as isize); [INFO] [stdout] | |________________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [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] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:392:27 [INFO] [stdout] | [INFO] [stdout] 392 | let ref mut ptr = *tx_offset.offset(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:392:28 [INFO] [stdout] | [INFO] [stdout] 392 | let ref mut ptr = *tx_offset.offset(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: access to union field is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:393:12 [INFO] [stdout] | [INFO] [stdout] 393 | if color.packed & rgb_mask != 0 { [INFO] [stdout] | ^^^^^^^^^^^^ access to union field [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: the field may not be properly initialized: using uninitialized data will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:399:21 [INFO] [stdout] | [INFO] [stdout] 399 | tx_offset = tx_offset.offset(BIT_NPULSES as isize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:407:14 [INFO] [stdout] | [INFO] [stdout] 407 | &mut *tx_buffer.as_mut_ptr().offset(LED_TX_OFFSET!(0) as isize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:405:1 [INFO] [stdout] | [INFO] [stdout] 405 | pub unsafe extern "C" fn leds_clear() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [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] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:408:18 [INFO] [stdout] | [INFO] [stdout] 408 | for _ in 0..(led_count as usize * LED_NBITS) { [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | *tx_offset.offset(1) = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:410:10 [INFO] [stdout] | [INFO] [stdout] 410 | *tx_offset.offset(1) = 0x0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:412:21 [INFO] [stdout] | [INFO] [stdout] 412 | tx_offset = tx_offset.offset(BIT_NPULSES as isize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:415:5 [INFO] [stdout] | [INFO] [stdout] 415 | color_buffer.fill([color_t { packed: 0 }; 512]); [INFO] [stdout] | ^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::memcpy` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:425:5 [INFO] [stdout] | [INFO] [stdout] 425 | / memcpy( [INFO] [stdout] 426 | | txdata as *mut libc::c_void, [INFO] [stdout] 427 | | tx_buffer.as_mut_ptr() as *const libc::c_void, [INFO] [stdout] 428 | | TX_BUFF_SIZE!(led_count as usize) as libc::c_ulong, [INFO] [stdout] 429 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/smileds.rs:424:1 [INFO] [stdout] | [INFO] [stdout] 424 | pub unsafe extern "C" fn leds_send() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:426:9 [INFO] [stdout] | [INFO] [stdout] 426 | txdata as *mut libc::c_void, [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [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] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:428:23 [INFO] [stdout] | [INFO] [stdout] 428 | TX_BUFF_SIZE!(led_count as usize) as libc::c_ulong, [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::smileds::start_smi` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:430:5 [INFO] [stdout] | [INFO] [stdout] 430 | start_smi(&mut vc_mem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/smileds.rs:430:20 [INFO] [stdout] | [INFO] [stdout] 430 | start_smi(&mut vc_mem); [INFO] [stdout] | ^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [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)]` 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)]` 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: 523 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rpi_ws2811_smi` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/c2rust/dma_defs.rs [INFO] [stderr] * src/c2rust/smi_defs.rs [INFO] [stderr] * src/c2rust/smileds.rs [INFO] [stderr] * src/consts.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/consts.rs:57:6 [INFO] [stderr] | [INFO] [stderr] 57 | ($n: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/consts.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | ($n: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/consts.rs:69:6 [INFO] [stderr] | [INFO] [stderr] 69 | ($n: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:36:6 [INFO] [stderr] | [INFO] [stderr] 36 | ($chan:expr_2021, $reg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:36:23 [INFO] [stderr] | [INFO] [stderr] 36 | ($chan:expr_2021, $reg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:46:6 [INFO] [stderr] | [INFO] [stderr] 46 | ($n:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ($mp: expr_2021, $a: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | ($mp: expr_2021, $a: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:61:6 [INFO] [stderr] | [INFO] [stderr] 61 | ($a: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:67:6 [INFO] [stderr] | [INFO] [stderr] 67 | ($m: expr_2021, $x: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/dma_defs.rs:67:21 [INFO] [stderr] | [INFO] [stderr] 67 | ($m: expr_2021, $x: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:213:20 [INFO] [stderr] | [INFO] [stderr] 213 | ($name: ident, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:6 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:24 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:43 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/c2rust/smi_defs.rs:219:61 [INFO] [stderr] | [INFO] [stderr] 219 | ($name: expr_2021, $value: expr_2021, $bits: expr_2021, $offset: expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:3:7 [INFO] [stderr] | [INFO] [stderr] 3 | #[cfg(rpi4)] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:5:11 [INFO] [stderr] | [INFO] [stderr] 5 | #[cfg(not(rpi4))] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:42:7 [INFO] [stderr] | [INFO] [stderr] 42 | #[cfg(rpi4)] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi23` [INFO] [stderr] --> src/consts.rs:44:7 [INFO] [stderr] | [INFO] [stderr] 44 | #[cfg(rpi23)] [INFO] [stderr] | ^^^^^ help: found config with similar value: `feature = "rpi23"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi23` [INFO] [stderr] --> src/consts.rs:46:15 [INFO] [stderr] | [INFO] [stderr] 46 | #[cfg(not(any(rpi23, rpi4)))] [INFO] [stderr] | ^^^^^ help: found config with similar value: `feature = "rpi23"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi23)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi23)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `rpi4` [INFO] [stderr] --> src/consts.rs:46:22 [INFO] [stderr] | [INFO] [stderr] 46 | #[cfg(not(any(rpi23, rpi4)))] [INFO] [stderr] | ^^^^ help: found config with similar value: `feature = "rpi4"` [INFO] [stderr] | [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(rpi4)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(rpi4)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `DMA_REG` [INFO] [stderr] --> src/c2rust/dma_defs.rs:35:14 [INFO] [stderr] | [INFO] [stderr] 35 | macro_rules! DMA_REG { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `DMA_PRIORITY` [INFO] [stderr] --> src/c2rust/dma_defs.rs:45:14 [INFO] [stderr] | [INFO] [stderr] 45 | macro_rules! DMA_PRIORITY { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `BUS_PHYS_ADDR` [INFO] [stderr] --> src/c2rust/dma_defs.rs:60:14 [INFO] [stderr] | [INFO] [stderr] 60 | macro_rules! BUS_PHYS_ADDR { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `set_bits` [INFO] [stderr] --> src/c2rust/smi_defs.rs:218:14 [INFO] [stderr] | [INFO] [stderr] 218 | macro_rules! set_bits { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:108:16 [INFO] [stderr] | [INFO] [stderr] 108 | map_periph(&mut gpio_regs, GPIO_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 108 | map_periph(addr_of_mut!(gpio_regs), GPIO_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:109:16 [INFO] [stderr] | [INFO] [stderr] 109 | map_periph(&mut dma_regs, DMA_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 109 | map_periph(addr_of_mut!(dma_regs), DMA_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:110:16 [INFO] [stderr] | [INFO] [stderr] 110 | map_periph(&mut clk_regs, CLK_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 110 | map_periph(addr_of_mut!(clk_regs), CLK_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | map_periph(&mut smi_regs, SMI_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 111 | map_periph(addr_of_mut!(smi_regs), SMI_BASE as *mut _, PAGE_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:130:22 [INFO] [stderr] | [INFO] [stderr] 130 | unmap_periph_mem(&mut vc_mem); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 130 | unmap_periph_mem(addr_of_mut!(vc_mem)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:131:22 [INFO] [stderr] | [INFO] [stderr] 131 | unmap_periph_mem(&mut smi_regs); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 131 | unmap_periph_mem(addr_of_mut!(smi_regs)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:132:22 [INFO] [stderr] | [INFO] [stderr] 132 | unmap_periph_mem(&mut dma_regs); [INFO] [stderr] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 132 | unmap_periph_mem(addr_of_mut!(dma_regs)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:133:22 [INFO] [stderr] | [INFO] [stderr] 133 | unmap_periph_mem(&mut gpio_regs); [INFO] [stderr] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 133 | unmap_periph_mem(addr_of_mut!(gpio_regs)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:320:22 [INFO] [stderr] | [INFO] [stderr] 320 | map_uncached_mem(&mut vc_mem, VC_MEM_SIZE as c_int); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 320 | map_uncached_mem(addr_of_mut!(vc_mem), VC_MEM_SIZE as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:321:19 [INFO] [stderr] | [INFO] [stderr] 321 | setup_smi_dma(&mut vc_mem, TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 321 | setup_smi_dma(addr_of_mut!(vc_mem), TX_BUFF_LEN!(led_count as usize) as c_int); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/c2rust/smileds.rs:429:15 [INFO] [stderr] | [INFO] [stderr] 429 | start_smi(&mut vc_mem); [INFO] [stderr] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 429 | start_smi(addr_of_mut!(vc_mem)); [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:119:55 [INFO] [stderr] | [INFO] [stderr] 119 | pub unsafe extern "C" fn terminate(mut _sig: c_int) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 127 | ::core::ptr::write_volatile(REG32!(smi_regs, SMI_CS), 0 as c_int as uint32_t); [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] 145 | let mut divi: c_int = ns / 2 as c_int; [INFO] [stderr] 146 | smi_cs = REG32!(smi_regs, SMI_CS) as *mut SMI_CS_REG; [INFO] [stderr] | ------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 147 | smi_l = REG32!(smi_regs, SMI_L) as *mut SMI_L_REG; [INFO] [stderr] | ----------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 148 | smi_a = REG32!(smi_regs, SMI_A) as *mut SMI_A_REG; [INFO] [stderr] | ----------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 149 | smi_d = REG32!(smi_regs, SMI_D) as *mut SMI_D_REG; [INFO] [stderr] | ----------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 150 | smi_dmc = REG32!(smi_regs, SMI_DMC) as *mut SMI_DMC_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 151 | smi_dsr = REG32!(smi_regs, SMI_DSR0) as *mut SMI_DSR_REG; [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 152 | smi_dsw = REG32!(smi_regs, SMI_DSW0) as *mut SMI_DSW_REG; [INFO] [stderr] | -------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 153 | smi_dcs = REG32!(smi_regs, SMI_DCS) as *mut SMI_DCS_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 154 | smi_dca = REG32!(smi_regs, SMI_DCA) as *mut SMI_DCA_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 155 | smi_dcd = REG32!(smi_regs, SMI_DCD) as *mut SMI_DCD_REG; [INFO] [stderr] | ------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 191 | if REG32!(clk_regs, CLK_SMI_DIV).read_volatile() != (divi << 12) as uint32_t { [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 192 | ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 196 | while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) != 0 {} [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 198 | ((REG32!(clk_regs, CLK_SMI_DIV) as *mut *mut uint32_t).read_volatile()) [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | ) { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] ... [INFO] [stderr] 201 | ((REG32!(clk_regs, CLK_SMI_CTL) as *mut *mut uint32_t).read_volatile()) [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:64:3 [INFO] [stdout] | [INFO] [stdout] 64 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 64 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 77 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/c2rust/smi_defs.rs:214:10 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:88:3 [INFO] [stdout] | [INFO] [stdout] 88 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 88 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:97:3 [INFO] [stdout] | [INFO] [stdout] 97 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 97 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 214 | (unsafe { $name.virt.wrapping_add($offset) }) as *mut u32 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:106:3 [INFO] [stdout] | [INFO] [stdout] 106 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 106 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:115:3 [INFO] [stdout] | [INFO] [stdout] 115 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 115 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:124:3 [INFO] [stdout] | [INFO] [stdout] 124 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 124 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] ::: src/c2rust/smileds.rs:144:5 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:144:3 [INFO] [stdout] | [INFO] [stdout] 144 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 144 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:190:3 [INFO] [stdout] | [INFO] [stdout] 190 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 190 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 144 | ) { unsafe { [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:203:3 [INFO] [stdout] | [INFO] [stdout] 203 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 203 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:212:3 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] ... [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:235:3 [INFO] [stdout] | [INFO] [stdout] 235 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 235 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 204 | while ((REG32!(clk_regs, CLK_SMI_CTL) as *mut uint32_t).read_volatile() & (1 << 7)) == 0 {} [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:246:3 [INFO] [stdout] | [INFO] [stdout] 246 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 246 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ----------------------------- in this macro invocation [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:259:3 [INFO] [stdout] | [INFO] [stdout] 259 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 259 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:266:3 [INFO] [stdout] | [INFO] [stdout] 266 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 266 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this warning originates in the macro `REG32` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:282:3 [INFO] [stdout] | [INFO] [stdout] 282 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 282 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:294:3 [INFO] [stdout] | [INFO] [stdout] 294 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 294 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: aborting due to 16 previous errors; 38 warnings emitted [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:300:3 [INFO] [stdout] | [INFO] [stdout] 300 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 300 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:340:3 [INFO] [stdout] | [INFO] [stdout] 340 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 340 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:394:3 [INFO] [stdout] | [INFO] [stdout] 394 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 394 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Original diagnostics will follow. [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:444:3 [INFO] [stdout] | [INFO] [stdout] 444 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 444 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:490:3 [INFO] [stdout] | [INFO] [stdout] 490 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 490 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:536:3 [INFO] [stdout] | [INFO] [stdout] 536 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 536 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:626:3 [INFO] [stdout] | [INFO] [stdout] 626 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 626 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:649:3 [INFO] [stdout] | [INFO] [stdout] 649 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 649 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:688:3 [INFO] [stdout] | [INFO] [stdout] 688 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 688 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:705:3 [INFO] [stdout] | [INFO] [stdout] 705 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 705 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:726:3 [INFO] [stdout] | [INFO] [stdout] 726 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 726 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:780:3 [INFO] [stdout] | [INFO] [stdout] 780 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 780 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:791:3 [INFO] [stdout] | [INFO] [stdout] 791 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 791 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:802:3 [INFO] [stdout] | [INFO] [stdout] 802 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 802 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:818:3 [INFO] [stdout] | [INFO] [stdout] 818 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 818 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:847:3 [INFO] [stdout] | [INFO] [stdout] 847 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 847 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:900:3 [INFO] [stdout] | [INFO] [stdout] 900 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 900 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:908:3 [INFO] [stdout] | [INFO] [stdout] 908 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 908 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:59:3 [INFO] [stdout] | [INFO] [stdout] 59 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 59 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:68:3 [INFO] [stdout] | [INFO] [stdout] 68 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 68 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:77:3 [INFO] [stdout] | [INFO] [stdout] 77 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 77 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:79:3 [INFO] [stdout] | [INFO] [stdout] 79 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 79 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:81:3 [INFO] [stdout] | [INFO] [stdout] 81 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 81 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:83:3 [INFO] [stdout] | [INFO] [stdout] 83 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 83 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:85:3 [INFO] [stdout] | [INFO] [stdout] 85 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 85 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:87:3 [INFO] [stdout] | [INFO] [stdout] 87 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 87 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:89:3 [INFO] [stdout] | [INFO] [stdout] 89 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 89 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:91:3 [INFO] [stdout] | [INFO] [stdout] 91 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 91 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:93:3 [INFO] [stdout] | [INFO] [stdout] 93 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 93 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:95:3 [INFO] [stdout] | [INFO] [stdout] 95 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 95 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:97:3 [INFO] [stdout] | [INFO] [stdout] 97 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 97 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:99:3 [INFO] [stdout] | [INFO] [stdout] 99 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 99 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:101:3 [INFO] [stdout] | [INFO] [stdout] 101 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 101 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:104:3 [INFO] [stdout] | [INFO] [stdout] 104 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 104 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:107:3 [INFO] [stdout] | [INFO] [stdout] 107 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 107 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:114:3 [INFO] [stdout] | [INFO] [stdout] 114 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 114 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:119:3 [INFO] [stdout] | [INFO] [stdout] 119 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 119 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:138:3 [INFO] [stdout] | [INFO] [stdout] 138 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 138 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:242:3 [INFO] [stdout] | [INFO] [stdout] 242 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 242 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:276:3 [INFO] [stdout] | [INFO] [stdout] 276 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 276 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:287:3 [INFO] [stdout] | [INFO] [stdout] 287 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 287 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:302:3 [INFO] [stdout] | [INFO] [stdout] 302 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 302 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:347:3 [INFO] [stdout] | [INFO] [stdout] 347 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 347 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:352:3 [INFO] [stdout] | [INFO] [stdout] 352 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 352 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:404:3 [INFO] [stdout] | [INFO] [stdout] 404 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 404 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:423:3 [INFO] [stdout] | [INFO] [stdout] 423 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 423 | #[unsafe(no_mangle)] [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: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [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 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 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 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 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 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 for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/consts.rs:57:10 [INFO] [stdout] | [INFO] [stdout] 57 | ($n: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 57 | ($n: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/consts.rs:63:10 [INFO] [stdout] | [INFO] [stdout] 63 | ($n: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 63 | ($n: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/consts.rs:69:10 [INFO] [stdout] | [INFO] [stdout] 69 | ($n: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 69 | ($n: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr, $reg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr_2021, $reg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:36:23 [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr, $reg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 36 | ($chan:expr, $reg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | ($n:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 46 | ($n:expr_2021) => { [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr, $a: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr_2021, $a: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr, $a: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 54 | ($mp: expr, $a: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | ($a: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 62 | ($a: expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:68:10 [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr, $x: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr_2021, $x: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/dma_defs.rs:68:20 [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr, $x: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 68 | ($m: expr, $x: expr_2021) => { [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: extern blocks should be unsafe [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 3 | | fn printf(_: *const libc::c_char, _: ...) -> libc::c_int; [INFO] [stdout] 4 | | fn close(_: libc::c_int) -> libc::c_int; [INFO] [stdout] 5 | | fn usleep(_: libc::c_uint) -> libc::c_int; [INFO] [stdout] ... | [INFO] [stdout] 17 | | fn fail(s: *mut libc::c_char); [INFO] [stdout] 18 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:213:29 [INFO] [stdout] | [INFO] [stdout] 213 | ($name: ident, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 213 | ($name: ident, $offset: expr_2021) => { [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr_2021, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr_2021, $bits: expr, $offset: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:40 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr_2021, $offset: expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/c2rust/smi_defs.rs:219:55 [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 219 | ($name: expr, $value: expr, $bits: expr, $offset: expr_2021) => { [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: extern blocks should be unsafe [INFO] [stdout] --> src/c2rust/smileds.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 33 | | fn memcpy(_: *mut libc::c_void, _: *const libc::c_void, _: libc::c_ulong) -> *mut libc::c_void; [INFO] [stdout] 34 | | fn memset(_: *mut libc::c_void, _: c_int, _: libc::c_ulong) -> *mut libc::c_void; [INFO] [stdout] 35 | | fn usleep(__useconds: __useconds_t) -> c_int; [INFO] [stdout] 36 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 109 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 110 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 111 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 112 | map_periph(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 131 | unmap_periph_mem(addr_of_mut!(vc_mem)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 132 | unmap_periph_mem(addr_of_mut!(smi_regs)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 133 | unmap_periph_mem(addr_of_mut!(dma_regs)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 134 | unmap_periph_mem(addr_of_mut!(gpio_regs)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 321 | map_uncached_mem(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 322 | setup_smi_dma(addr_of_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 is discouraged [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 issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 430 | start_smi(addr_of_mut!(vc_mem)); [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | (*mp).phys = phys; [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:125:1 [INFO] [stdout] | [INFO] [stdout] 125 | / pub unsafe extern "C" fn map_periph( [INFO] [stdout] 126 | | mut mp: *mut MEM_MAP, [INFO] [stdout] 127 | | mut phys: *mut libc::c_void, [INFO] [stdout] 128 | | mut size: libc::c_int, [INFO] [stdout] 129 | | ) -> *mut libc::c_void { [INFO] [stdout] | |______________________^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 137 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:141:5 [INFO] [stdout] | [INFO] [stdout] 141 | (*mp).virt = map_segment(phys, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:141:18 [INFO] [stdout] | [INFO] [stdout] 141 | (*mp).virt = map_segment(phys, (*mp).size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:141:36 [INFO] [stdout] | [INFO] [stdout] 141 | (*mp).virt = map_segment(phys, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | return (*mp).virt; [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:145:1 [INFO] [stdout] | [INFO] [stdout] 145 | / pub unsafe extern "C" fn map_uncached_mem( [INFO] [stdout] 146 | | mut mp: *mut MEM_MAP, [INFO] [stdout] 147 | | mut size: libc::c_int, [INFO] [stdout] 148 | | ) -> *mut libc::c_void { [INFO] [stdout] | |______________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | (*mp).fd = open_mbox(); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::open_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:156:16 [INFO] [stdout] | [INFO] [stdout] 156 | (*mp).fd = open_mbox(); [INFO] [stdout] | ^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::alloc_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:158:14 [INFO] [stdout] | [INFO] [stdout] 158 | .h = alloc_vc_mem( [INFO] [stdout] | ______________^ [INFO] [stdout] 159 | | (*mp).fd, [INFO] [stdout] 160 | | (*mp).size as uint32_t, [INFO] [stdout] 161 | | (MEM_FLAG_DIRECT as libc::c_int | MEM_FLAG_ZERO as libc::c_int) as VC_ALLOC_FLAGS, [INFO] [stdout] 162 | | ) as libc::c_int; [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | (*mp).fd, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 160 | (*mp).size as uint32_t, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:163:14 [INFO] [stdout] | [INFO] [stdout] 163 | ret = if (*mp).h > 0 as libc::c_int [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:13 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::lock_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:37 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:165:47 [INFO] [stdout] | [INFO] [stdout] 165 | (*mp).bus = lock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:166:15 [INFO] [stdout] | [INFO] [stdout] 166 | !((*mp).bus).is_null() [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | (*mp) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::map_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:170:25 [INFO] [stdout] | [INFO] [stdout] 170 | .virt = map_segment( [INFO] [stdout] | _________________________^ [INFO] [stdout] 171 | | ((*mp).bus as uint32_t & !(0xc0000000 as libc::c_uint)) [INFO] [stdout] 172 | | as *mut libc::c_void, [INFO] [stdout] 173 | | (*mp).size, [INFO] [stdout] 174 | | ); [INFO] [stdout] | |_____________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:171:18 [INFO] [stdout] | [INFO] [stdout] 171 | ((*mp).bus as uint32_t & !(0xc0000000 as libc::c_uint)) [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:173:17 [INFO] [stdout] | [INFO] [stdout] 173 | (*mp).size, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:175:15 [INFO] [stdout] | [INFO] [stdout] 175 | !((*mp).virt).is_null() [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | (*mp).virt [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | / printf( [INFO] [stdout] 183 | | b"VC mem handle %u, phys %p, virt %p\n\0" as *const u8 as *const libc::c_char, [INFO] [stdout] 184 | | (*mp).h, [INFO] [stdout] 185 | | (*mp).bus, [INFO] [stdout] 186 | | (*mp).virt, [INFO] [stdout] 187 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 184 | (*mp).h, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | (*mp).bus, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | (*mp).virt, [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:193:12 [INFO] [stdout] | [INFO] [stdout] 193 | if (*mp).fd != 0 { [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:191:1 [INFO] [stdout] | [INFO] [stdout] 191 | pub unsafe extern "C" fn unmap_periph_mem(mut mp: *mut MEM_MAP) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:194:13 [INFO] [stdout] | [INFO] [stdout] 194 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:194:27 [INFO] [stdout] | [INFO] [stdout] 194 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:194:39 [INFO] [stdout] | [INFO] [stdout] 194 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unlock_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | unlock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:195:27 [INFO] [stdout] | [INFO] [stdout] 195 | unlock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:195:37 [INFO] [stdout] | [INFO] [stdout] 195 | unlock_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::free_vc_mem` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | free_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:196:25 [INFO] [stdout] | [INFO] [stdout] 196 | free_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:196:35 [INFO] [stdout] | [INFO] [stdout] 196 | free_vc_mem((*mp).fd, (*mp).h); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::close_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | close_mbox((*mp).fd); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:197:24 [INFO] [stdout] | [INFO] [stdout] 197 | close_mbox((*mp).fd); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::unmap_segment` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:199:27 [INFO] [stdout] | [INFO] [stdout] 199 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:199:39 [INFO] [stdout] | [INFO] [stdout] 199 | unmap_segment((*mp).virt, (*mp).size); [INFO] [stdout] | ^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::gpio_mode` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:209:5 [INFO] [stdout] | [INFO] [stdout] 209 | gpio_mode(pin, mode); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:204:1 [INFO] [stdout] | [INFO] [stdout] 204 | / pub unsafe extern "C" fn gpio_set( [INFO] [stdout] 205 | | mut pin: libc::c_int, [INFO] [stdout] 206 | | mut mode: libc::c_int, [INFO] [stdout] 207 | | mut pull: libc::c_int, [INFO] [stdout] 208 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::gpio_pull` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:210:5 [INFO] [stdout] | [INFO] [stdout] 210 | gpio_pull(pin, pull); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:214:34 [INFO] [stdout] | [INFO] [stdout] 214 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 215 | | .wrapping_add(0x98 as libc::c_int as uint32_t) as *mut uint32_t) [INFO] [stdout] 216 | | .offset((pin / 32 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:213:1 [INFO] [stdout] | [INFO] [stdout] 213 | pub unsafe extern "C" fn gpio_pull(mut pin: libc::c_int, mut pull: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:214:36 [INFO] [stdout] | [INFO] [stdout] 214 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | / ::core::ptr::write_volatile( [INFO] [stdout] 218 | | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] 219 | | as *mut uint32_t, [INFO] [stdout] 220 | | pull as uint32_t, [INFO] [stdout] 221 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:218:10 [INFO] [stdout] | [INFO] [stdout] 218 | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | usleep(2 as libc::c_int as libc::c_uint); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | / ::core::ptr::write_volatile( [INFO] [stdout] 224 | | reg, [INFO] [stdout] 225 | | ((1 as libc::c_int) << pin % 32 as libc::c_int) as uint32_t, [INFO] [stdout] 226 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::usleep` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 227 | usleep(2 as libc::c_int as libc::c_uint); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:228:5 [INFO] [stdout] | [INFO] [stdout] 228 | / ::core::ptr::write_volatile( [INFO] [stdout] 229 | | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] 230 | | as *mut uint32_t, [INFO] [stdout] 231 | | 0 as libc::c_int as uint32_t, [INFO] [stdout] 232 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:229:10 [INFO] [stdout] | [INFO] [stdout] 229 | (gpio_regs.virt as uint32_t).wrapping_add(0x94 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:233:5 [INFO] [stdout] | [INFO] [stdout] 233 | ::core::ptr::write_volatile(reg, 0 as libc::c_int as uint32_t); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:237:34 [INFO] [stdout] | [INFO] [stdout] 237 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 238 | | .wrapping_add(0 as libc::c_int as uint32_t) as *mut uint32_t) [INFO] [stdout] 239 | | .offset((pin / 10 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:236:1 [INFO] [stdout] | [INFO] [stdout] 236 | pub unsafe extern "C" fn gpio_mode(mut pin: libc::c_int, mut mode: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:237:36 [INFO] [stdout] | [INFO] [stdout] 237 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:241:5 [INFO] [stdout] | [INFO] [stdout] 241 | / ::core::ptr::write_volatile( [INFO] [stdout] 242 | | reg, [INFO] [stdout] 243 | | *reg & !((7 as libc::c_int) << shift) as uint32_t | (mode << shift) as uint32_t, [INFO] [stdout] 244 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | *reg & !((7 as libc::c_int) << shift) as uint32_t | (mode << shift) as uint32_t, [INFO] [stdout] | ^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:248:34 [INFO] [stdout] | [INFO] [stdout] 248 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 249 | | .wrapping_add( [INFO] [stdout] 250 | | (if val != 0 { 0x1c as libc::c_int } else { 0x28 as libc::c_int }) [INFO] [stdout] 251 | | as uint32_t, [INFO] [stdout] 252 | | ) as *mut uint32_t) [INFO] [stdout] 253 | | .offset((pin / 32 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:247:1 [INFO] [stdout] | [INFO] [stdout] 247 | pub unsafe extern "C" fn gpio_out(mut pin: libc::c_int, mut val: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:248:36 [INFO] [stdout] | [INFO] [stdout] 248 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_volatile` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / ::core::ptr::write_volatile( [INFO] [stdout] 255 | | reg, [INFO] [stdout] 256 | | ((1 as libc::c_int) << pin % 32 as libc::c_int) as uint32_t, [INFO] [stdout] 257 | | ); [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::::offset` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:261:34 [INFO] [stdout] | [INFO] [stdout] 261 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | __________________________________^ [INFO] [stdout] 262 | | .wrapping_add(0x34 as libc::c_int as uint32_t) as *mut uint32_t) [INFO] [stdout] 263 | | .offset((pin / 32 as libc::c_int) as isize); [INFO] [stdout] | |___________________________________________________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:260:1 [INFO] [stdout] | [INFO] [stdout] 260 | pub unsafe extern "C" fn gpio_in(mut pin: libc::c_int) -> uint8_t { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:261:36 [INFO] [stdout] | [INFO] [stdout] 261 | let mut reg: *mut uint32_t = ((gpio_regs.virt as uint32_t) [INFO] [stdout] | ^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | return (*reg >> pin % 32 as libc::c_int & 1 as libc::c_int as uint32_t) as uint8_t; [INFO] [stdout] | ^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:271:9 [INFO] [stdout] | [INFO] [stdout] 271 | / printf( [INFO] [stdout] 272 | | b"%u:%-4s \0" as *const u8 as *const libc::c_char, [INFO] [stdout] 273 | | i, [INFO] [stdout] 274 | | gpio_mode_strs[(mode >> i * 3 as libc::c_int & 7 as libc::c_int as uint32_t) [INFO] [stdout] 275 | | as usize], [INFO] [stdout] 276 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:267:1 [INFO] [stdout] | [INFO] [stdout] 267 | pub unsafe extern "C" fn disp_mode_vals(mut mode: uint32_t) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | gpio_mode_strs[(mode >> i * 3 as libc::c_int & 7 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:280:5 [INFO] [stdout] | [INFO] [stdout] 280 | printf(b"\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::open` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:285:10 [INFO] [stdout] | [INFO] [stdout] 285 | fd = open(b"/dev/vcio\0" as *const u8 as *const libc::c_char, 0 as libc::c_int); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:283:1 [INFO] [stdout] | [INFO] [stdout] 283 | pub unsafe extern "C" fn open_mbox() -> libc::c_int { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::fail` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | / fail( [INFO] [stdout] 288 | | b"Error: can't open VC mailbox\n\0" as *const u8 as *const libc::c_char [INFO] [stdout] 289 | | as *mut libc::c_char, [INFO] [stdout] 290 | | ); [INFO] [stdout] | |_________^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::close` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:297:9 [INFO] [stdout] | [INFO] [stdout] 297 | close(fd); [INFO] [stdout] | ^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:295:1 [INFO] [stdout] | [INFO] [stdout] 295 | pub unsafe extern "C" fn close_mbox(mut fd: libc::c_int) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | i = (*msgp).dlen / 4 as libc::c_int as uint32_t; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:301:1 [INFO] [stdout] | [INFO] [stdout] 301 | / pub unsafe extern "C" fn msg_mbox( [INFO] [stdout] 302 | | mut fd: libc::c_int, [INFO] [stdout] 303 | | mut msgp: *mut VC_MSG, [INFO] [stdout] 304 | | ) -> uint32_t { [INFO] [stdout] | |_____________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:308:16 [INFO] [stdout] | [INFO] [stdout] 308 | while i <= (*msgp).blen / 4 as libc::c_int as uint32_t { [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:311:9 [INFO] [stdout] | [INFO] [stdout] 311 | (*msgp).uints[fresh0 as usize] = 0 as libc::c_int as uint32_t; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:314:5 [INFO] [stdout] | [INFO] [stdout] 314 | (*msgp) [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:315:17 [INFO] [stdout] | [INFO] [stdout] 315 | .len = ((*msgp).blen).wrapping_add(6 as libc::c_int as uint32_t) [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:317:5 [INFO] [stdout] | [INFO] [stdout] 317 | (*msgp).req = 0 as libc::c_int as uint32_t; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::ioctl` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | if ioctl( [INFO] [stdout] | ________^ [INFO] [stdout] 319 | | fd, [INFO] [stdout] 320 | | (((2 as libc::c_uint | 1 as libc::c_uint) << 30 as libc::c_int [INFO] [stdout] 321 | | | ((100 as libc::c_int) << 8 as libc::c_int) as libc::c_uint [INFO] [stdout] ... | [INFO] [stdout] 325 | | msgp, [INFO] [stdout] 326 | | ) < 0 as libc::c_int [INFO] [stdout] | |_____^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:328:9 [INFO] [stdout] | [INFO] [stdout] 328 | printf(b"VC IOCTL failed\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:329:15 [INFO] [stdout] | [INFO] [stdout] 329 | } else if (*msgp).req & 0x80000000 as libc::c_uint [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:332:9 [INFO] [stdout] | [INFO] [stdout] 332 | printf(b"VC IOCTL error\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:333:15 [INFO] [stdout] | [INFO] [stdout] 333 | } else if (*msgp).req == 0x80000001 as libc::c_uint { [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::printf` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | printf(b"VC IOCTL partial error\n\0" as *const u8 as *const libc::c_char); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:336:15 [INFO] [stdout] | [INFO] [stdout] 336 | ret = (*msgp).uints[0 as libc::c_int as usize]; [INFO] [stdout] | ^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `c2rust::rpi_dma_utils::msg_mbox` is unsafe and requires unsafe block [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:392:12 [INFO] [stdout] | [INFO] [stdout] 392 | return msg_mbox(fd, &mut msg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/c2rust/rpi_dma_utils.rs:341:1 [INFO] [stdout] | [INFO] [stdout] 341 | / pub unsafe extern "C" fn alloc_vc_mem( [WARN] too many lines in the log, truncating it