[INFO] cloning repository https://github.com/sidhantas/GameboyAdvance [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sidhantas/GameboyAdvance" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7aee97cb9e8da7118e1963c2a26195121878de34 [INFO] checking sidhantas/GameboyAdvance against master#336209eef13882bd1e211b24779584cb7ef911eb for pr-129249 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsidhantas%2FGameboyAdvance" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/sidhantas/GameboyAdvance on toolchain 336209eef13882bd1e211b24779584cb7ef911eb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+336209eef13882bd1e211b24779584cb7ef911eb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/sidhantas/GameboyAdvance [INFO] finished tweaking git repo https://github.com/sidhantas/GameboyAdvance [INFO] tweaked toml for git repo https://github.com/sidhantas/GameboyAdvance written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/sidhantas/GameboyAdvance 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" "+336209eef13882bd1e211b24779584cb7ef911eb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rstest_macros v0.23.0 [INFO] [stderr] Downloaded ctrlc v3.4.4 [INFO] [stderr] Downloaded rstest v0.23.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+336209eef13882bd1e211b24779584cb7ef911eb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 983cc89ffcfe1c5f1f1de9105ceea3dd8255966fac0872fefe45324772e2a34e [INFO] running `Command { std: "docker" "start" "-a" "983cc89ffcfe1c5f1f1de9105ceea3dd8255966fac0872fefe45324772e2a34e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "983cc89ffcfe1c5f1f1de9105ceea3dd8255966fac0872fefe45324772e2a34e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "983cc89ffcfe1c5f1f1de9105ceea3dd8255966fac0872fefe45324772e2a34e", kill_on_drop: false }` [INFO] [stdout] 983cc89ffcfe1c5f1f1de9105ceea3dd8255966fac0872fefe45324772e2a34e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+336209eef13882bd1e211b24779584cb7ef911eb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 506f1f7ea3b540cb5c90f7dec285597c7e34c46af3f03053bd67aabb70a8a94d [INFO] running `Command { std: "docker" "start" "-a" "506f1f7ea3b540cb5c90f7dec285597c7e34c46af3f03053bd67aabb70a8a94d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling proc-macro2 v1.0.89 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Compiling hashbrown v0.15.1 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling cfg_aliases v0.1.1 [INFO] [stderr] Compiling winnow v0.6.20 [INFO] [stderr] Compiling toml_datetime v0.6.8 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling sdl2-sys v0.37.0 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling indexmap v2.6.0 [INFO] [stderr] Compiling sdl2 v0.37.0 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking pin-project-lite v0.2.15 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Compiling rstest_macros v0.23.0 [INFO] [stderr] Checking futures-timer v3.0.3 [INFO] [stderr] Compiling syn v2.0.87 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Checking getopts v0.2.21 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.25.0 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking ctrlc v3.4.4 [INFO] [stderr] Compiling toml_edit v0.22.22 [INFO] [stderr] Checking tui v0.19.0 [INFO] [stderr] Checking regex-automata v0.4.8 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling proc-macro-crate v3.2.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking rstest v0.23.0 [INFO] [stderr] Checking gameboy_advance v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `DebuggerMemoryBus` and `debugger::breakpoints::BreakType` [INFO] [stdout] --> src/arm7tdmi/cpu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | debugger::breakpoints::BreakType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | memory::memory::{DebuggerMemoryBus, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/debugger/debugger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | mem, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ReadError` and `WriteError` [INFO] [stdout] --> src/debugger/debugger.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | MemoryError::{ReadError, WriteError}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DebuggerMemoryBus` and `debugger::breakpoints::BreakType` [INFO] [stdout] --> src/arm7tdmi/cpu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | debugger::breakpoints::BreakType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | memory::memory::{DebuggerMemoryBus, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/debugger/debugger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | mem, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ReadError` and `WriteError` [INFO] [stdout] --> src/debugger/debugger.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | MemoryError::{ReadError, WriteError}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | memory::memory::MemoryBus, types::{CYCLES, REGISTER, WORD}, utils::{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | memory::memory::MemoryBus, types::{CYCLES, WORD}, utils::bits::Bits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | memory::memory::MemoryBus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn arm_multiply(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:59:47 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn arm_multiply_accumulate(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:63:41 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn arm_multiply_long(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn arm_not_implemented(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operand1` [INFO] [stdout] --> src/arm7tdmi/alu.rs:183:45 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn arm_rsc(&mut self, rd: REGISTER, operand1: u32, operand2: u32, set_flags: bool) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operand1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address1` [INFO] [stdout] --> src/debugger/breakpoints.rs:39:46 [INFO] [stdout] | [INFO] [stdout] 39 | BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DebuggerMemoryBus` and `debugger::breakpoints::BreakType` [INFO] [stdout] --> src/arm7tdmi/cpu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | debugger::breakpoints::BreakType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | memory::memory::{DebuggerMemoryBus, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_undefined` is never used [INFO] [stdout] --> src/arm7tdmi/decoder.rs:287:12 [INFO] [stdout] | [INFO] [stdout] 287 | pub fn is_undefined(instruction: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG0CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const BG0CNT: usize = 0x008; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG1CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const BG1CNT: usize = 0x00A; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG2CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const BG2CNT: usize = 0x00C; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG3CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const BG3CNT: usize = 0x00E; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `THIRTYTWO` is never constructed [INFO] [stdout] --> src/memory/io_handlers.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 24 | enum BitMask { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | THIRTYTWO(u32, u32), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BitMask` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/debugger/debugger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | mem, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ReadError` and `WriteError` [INFO] [stdout] --> src/debugger/debugger.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | MemoryError::{ReadError, WriteError}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> tests/test_thumb_long_branch.rs:3:71 [INFO] [stdout] | [INFO] [stdout] 3 | use gameboy_advance::{arm7tdmi::cpu::CPU, memory::memory::{GBAMemory, MemoryBus}}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | memory::memory::MemoryBus, types::{CYCLES, REGISTER, WORD}, utils::{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | memory::memory::MemoryBus, types::{CYCLES, WORD}, utils::bits::Bits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | memory::memory::MemoryBus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/alu.rs:377:38 [INFO] [stdout] | [INFO] [stdout] 377 | memory::memory::{ GBAMemory, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | memory::memory::MemoryBus, types::{CYCLES, REGISTER, WORD}, utils::{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:353:65 [INFO] [stdout] | [INFO] [stdout] 353 | use crate::{arm7tdmi::cpu::CPU, memory::memory::{GBAMemory, MemoryBus}}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | memory::memory::MemoryBus, types::{CYCLES, WORD}, utils::bits::Bits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:39:65 [INFO] [stdout] | [INFO] [stdout] 39 | use crate::{arm7tdmi::cpu::CPU, memory::memory::{GBAMemory, MemoryBus}}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | memory::memory::MemoryBus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:225:37 [INFO] [stdout] | [INFO] [stdout] 225 | memory::memory::{GBAMemory, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn arm_multiply(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:59:47 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn arm_multiply_accumulate(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:63:41 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn arm_multiply_long(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn arm_not_implemented(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operand1` [INFO] [stdout] --> src/arm7tdmi/alu.rs:183:45 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn arm_rsc(&mut self, rd: REGISTER, operand1: u32, operand2: u32, set_flags: bool) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operand1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn arm_multiply(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:59:47 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn arm_multiply_accumulate(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:63:41 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn arm_multiply_long(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn arm_not_implemented(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operand1` [INFO] [stdout] --> src/arm7tdmi/alu.rs:183:45 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn arm_rsc(&mut self, rd: REGISTER, operand1: u32, operand2: u32, set_flags: bool) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operand1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GBAMemory` and `MemoryBus` [INFO] [stdout] --> src/main.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use memory::memory::{GBAMemory, MemoryBus}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DebuggerMemoryBus` and `debugger::breakpoints::BreakType` [INFO] [stdout] --> src/arm7tdmi/cpu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | debugger::breakpoints::BreakType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | memory::memory::{DebuggerMemoryBus, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/debugger/debugger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | mem, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ReadError` and `WriteError` [INFO] [stdout] --> src/debugger/debugger.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | MemoryError::{ReadError, WriteError}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address1` [INFO] [stdout] --> src/debugger/breakpoints.rs:39:46 [INFO] [stdout] | [INFO] [stdout] 39 | BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_undefined` is never used [INFO] [stdout] --> src/arm7tdmi/decoder.rs:287:12 [INFO] [stdout] | [INFO] [stdout] 287 | pub fn is_undefined(instruction: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG0CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const BG0CNT: usize = 0x008; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG1CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const BG1CNT: usize = 0x00A; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG2CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const BG2CNT: usize = 0x00C; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG3CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const BG3CNT: usize = 0x00E; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `THIRTYTWO` is never constructed [INFO] [stdout] --> src/memory/io_handlers.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 24 | enum BitMask { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | THIRTYTWO(u32, u32), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BitMask` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address1` [INFO] [stdout] --> src/debugger/breakpoints.rs:39:46 [INFO] [stdout] | [INFO] [stdout] 39 | BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG0CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const BG0CNT: usize = 0x008; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG1CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const BG1CNT: usize = 0x00A; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG2CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const BG2CNT: usize = 0x00C; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG3CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const BG3CNT: usize = 0x00E; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `THIRTYTWO` is never constructed [INFO] [stdout] --> src/memory/io_handlers.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 24 | enum BitMask { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | THIRTYTWO(u32, u32), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BitMask` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:509:17 [INFO] [stdout] | [INFO] [stdout] 509 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::single_data_swap) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 509 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::single_data_swap as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)) [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:518:17 [INFO] [stdout] | [INFO] [stdout] 518 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::block_dt_execution) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 518 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::block_dt_execution as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)) [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:526:17 [INFO] [stdout] | [INFO] [stdout] 526 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::arm_branch_and_exchange) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 526 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::arm_branch_and_exchange as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)) [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:536:17 [INFO] [stdout] | [INFO] [stdout] 536 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::arm_software_interrupt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 536 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::arm_software_interrupt as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:555:17 [INFO] [stdout] | [INFO] [stdout] 555 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 555 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:556:17 [INFO] [stdout] | [INFO] [stdout] 556 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 556 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:567:17 [INFO] [stdout] | [INFO] [stdout] 567 | assert!(decoded_instruction.executable == CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 567 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:568:17 [INFO] [stdout] | [INFO] [stdout] 568 | assert!(decoded_instruction.executable != CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 568 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 579 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:580:17 [INFO] [stdout] | [INFO] [stdout] 580 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 580 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:591:17 [INFO] [stdout] | [INFO] [stdout] 591 | assert!(decoded_instruction.executable == CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 591 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:592:17 [INFO] [stdout] | [INFO] [stdout] 592 | assert!(decoded_instruction.executable != CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 592 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 603 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:604:17 [INFO] [stdout] | [INFO] [stdout] 604 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 604 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:614:17 [INFO] [stdout] | [INFO] [stdout] 614 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 614 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:615:17 [INFO] [stdout] | [INFO] [stdout] 615 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 615 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:625:17 [INFO] [stdout] | [INFO] [stdout] 625 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 625 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:626:17 [INFO] [stdout] | [INFO] [stdout] 626 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 626 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:636:17 [INFO] [stdout] | [INFO] [stdout] 636 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 636 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:637:17 [INFO] [stdout] | [INFO] [stdout] 637 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 637 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:647:17 [INFO] [stdout] | [INFO] [stdout] 647 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 647 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:648:17 [INFO] [stdout] | [INFO] [stdout] 648 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 648 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:658:17 [INFO] [stdout] | [INFO] [stdout] 658 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 658 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:659:17 [INFO] [stdout] | [INFO] [stdout] 659 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 659 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:670:17 [INFO] [stdout] | [INFO] [stdout] 670 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 670 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:671:17 [INFO] [stdout] | [INFO] [stdout] 671 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 671 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:682:17 [INFO] [stdout] | [INFO] [stdout] 682 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 682 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:683:17 [INFO] [stdout] | [INFO] [stdout] 683 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 683 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:688:17 [INFO] [stdout] | [INFO] [stdout] 688 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 688 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:689:17 [INFO] [stdout] | [INFO] [stdout] 689 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 689 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:694:17 [INFO] [stdout] | [INFO] [stdout] 694 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 694 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:695:17 [INFO] [stdout] | [INFO] [stdout] 695 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 695 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:707:17 [INFO] [stdout] | [INFO] [stdout] 707 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 707 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:708:17 [INFO] [stdout] | [INFO] [stdout] 708 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 708 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:713:17 [INFO] [stdout] | [INFO] [stdout] 713 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 713 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:714:17 [INFO] [stdout] | [INFO] [stdout] 714 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 714 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:725:17 [INFO] [stdout] | [INFO] [stdout] 725 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 725 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:726:17 [INFO] [stdout] | [INFO] [stdout] 726 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 726 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:731:17 [INFO] [stdout] | [INFO] [stdout] 731 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 731 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:732:17 [INFO] [stdout] | [INFO] [stdout] 732 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 732 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:745:17 [INFO] [stdout] | [INFO] [stdout] 745 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 745 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:746:17 [INFO] [stdout] | [INFO] [stdout] 746 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 746 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:752:17 [INFO] [stdout] | [INFO] [stdout] 752 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 752 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:753:17 [INFO] [stdout] | [INFO] [stdout] 753 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 753 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:767:17 [INFO] [stdout] | [INFO] [stdout] 767 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 767 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:768:17 [INFO] [stdout] | [INFO] [stdout] 768 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 768 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:774:17 [INFO] [stdout] | [INFO] [stdout] 774 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 774 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:775:17 [INFO] [stdout] | [INFO] [stdout] 775 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 775 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:781:17 [INFO] [stdout] | [INFO] [stdout] 781 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 781 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:782:17 [INFO] [stdout] | [INFO] [stdout] 782 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 782 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:791:17 [INFO] [stdout] | [INFO] [stdout] 791 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 791 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:792:17 [INFO] [stdout] | [INFO] [stdout] 792 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 792 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:991:17 [INFO] [stdout] | [INFO] [stdout] 991 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 991 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:992:17 [INFO] [stdout] | [INFO] [stdout] 992 | assert!(decoded_instruction.executable == CPU::sdt_imm_offset); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 992 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::sdt_imm_offset as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1006:17 [INFO] [stdout] | [INFO] [stdout] 1006 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1006 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1007:17 [INFO] [stdout] | [INFO] [stdout] 1007 | assert!(decoded_instruction.executable == CPU::thumb_sdt_sp_imm); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1007 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_sdt_sp_imm as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1021:17 [INFO] [stdout] | [INFO] [stdout] 1021 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1021 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1022:17 [INFO] [stdout] | [INFO] [stdout] 1022 | assert!(decoded_instruction.executable == CPU::thumb_add_offset_to_sp); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1022 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_add_offset_to_sp as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1035:17 [INFO] [stdout] | [INFO] [stdout] 1035 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1035 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1036:17 [INFO] [stdout] | [INFO] [stdout] 1036 | assert!(decoded_instruction.executable == CPU::thumb_push_pop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1036 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_push_pop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1049:17 [INFO] [stdout] | [INFO] [stdout] 1049 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1049 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1050:17 [INFO] [stdout] | [INFO] [stdout] 1050 | assert!(decoded_instruction.executable == CPU::thumb_multiple_load_or_store); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1050 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_multiple_load_or_store as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GBAMemory` and `MemoryBus` [INFO] [stdout] --> src/main.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use memory::memory::{GBAMemory, MemoryBus}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DebuggerMemoryBus` and `debugger::breakpoints::BreakType` [INFO] [stdout] --> src/arm7tdmi/cpu.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | debugger::breakpoints::BreakType, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | memory::memory::{DebuggerMemoryBus, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/debugger/debugger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | mem, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ReadError` and `WriteError` [INFO] [stdout] --> src/debugger/debugger.rs:32:27 [INFO] [stdout] | [INFO] [stdout] 32 | MemoryError::{ReadError, WriteError}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | memory::memory::MemoryBus, types::{CYCLES, REGISTER, WORD}, utils::{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | memory::memory::MemoryBus, types::{CYCLES, WORD}, utils::bits::Bits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | memory::memory::MemoryBus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn arm_multiply(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:59:47 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn arm_multiply_accumulate(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:63:41 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn arm_multiply_long(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn arm_not_implemented(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operand1` [INFO] [stdout] --> src/arm7tdmi/alu.rs:183:45 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn arm_rsc(&mut self, rd: REGISTER, operand1: u32, operand2: u32, set_flags: bool) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operand1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/alu.rs:377:38 [INFO] [stdout] | [INFO] [stdout] 377 | memory::memory::{ GBAMemory, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | memory::memory::MemoryBus, types::{CYCLES, REGISTER, WORD}, utils::{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/data_transfer_instructions.rs:353:65 [INFO] [stdout] | [INFO] [stdout] 353 | use crate::{arm7tdmi::cpu::CPU, memory::memory::{GBAMemory, MemoryBus}}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | memory::memory::MemoryBus, types::{CYCLES, WORD}, utils::bits::Bits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/swap_instruction.rs:39:65 [INFO] [stdout] | [INFO] [stdout] 39 | use crate::{arm7tdmi::cpu::CPU, memory::memory::{GBAMemory, MemoryBus}}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `memory::memory::MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | memory::memory::MemoryBus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryBus` [INFO] [stdout] --> src/arm7tdmi/thumb/data_transfer_instructions.rs:225:37 [INFO] [stdout] | [INFO] [stdout] 225 | memory::memory::{GBAMemory, MemoryBus}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:55:36 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn arm_multiply(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:59:47 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn arm_multiply_accumulate(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:63:41 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn arm_multiply_long(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/arm7tdmi/instructions.rs:93:43 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn arm_not_implemented(&mut self, instruction: ARMByteCode) -> CYCLES { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address1` [INFO] [stdout] --> src/debugger/breakpoints.rs:39:46 [INFO] [stdout] | [INFO] [stdout] 39 | BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `operand1` [INFO] [stdout] --> src/arm7tdmi/alu.rs:183:45 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn arm_rsc(&mut self, rd: REGISTER, operand1: u32, operand2: u32, set_flags: bool) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operand1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_undefined` is never used [INFO] [stdout] --> src/arm7tdmi/decoder.rs:287:12 [INFO] [stdout] | [INFO] [stdout] 287 | pub fn is_undefined(instruction: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `InternalOperation` is never used [INFO] [stdout] --> src/arm7tdmi/instructions.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type InternalOperation = fn(&mut CPU) -> CYCLES; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Reset`, `Undefined`, and `IRQ` are never constructed [INFO] [stdout] --> src/arm7tdmi/interrupts.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum Exceptions { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 7 | Reset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | Undefined, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | Software, [INFO] [stdout] 10 | IRQ, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Exceptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DebuggerMemoryBus` is never used [INFO] [stdout] --> src/memory/memory.rs:110:11 [INFO] [stdout] | [INFO] [stdout] 110 | pub trait DebuggerMemoryBus: MemoryBusNoPanic + MemoryBus {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG0CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const BG0CNT: usize = 0x008; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG1CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const BG1CNT: usize = 0x00A; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG2CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const BG2CNT: usize = 0x00C; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG3CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const BG3CNT: usize = 0x00E; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `THIRTYTWO` is never constructed [INFO] [stdout] --> src/memory/io_handlers.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 24 | enum BitMask { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | THIRTYTWO(u32, u32), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BitMask` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address1` [INFO] [stdout] --> src/debugger/breakpoints.rs:39:46 [INFO] [stdout] | [INFO] [stdout] 39 | BreakType::WatchAddress(address, address1) => write!(f, "address == {}", address), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `InternalOperation` is never used [INFO] [stdout] --> src/arm7tdmi/instructions.rs:11:10 [INFO] [stdout] | [INFO] [stdout] 11 | pub type InternalOperation = fn(&mut CPU) -> CYCLES; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Reset`, `Undefined`, and `IRQ` are never constructed [INFO] [stdout] --> src/arm7tdmi/interrupts.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum Exceptions { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 7 | Reset, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | Undefined, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 9 | Software, [INFO] [stdout] 10 | IRQ, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Exceptions` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DebuggerMemoryBus` is never used [INFO] [stdout] --> src/memory/memory.rs:110:11 [INFO] [stdout] | [INFO] [stdout] 110 | pub trait DebuggerMemoryBus: MemoryBusNoPanic + MemoryBus {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG0CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const BG0CNT: usize = 0x008; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG1CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const BG1CNT: usize = 0x00A; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG2CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const BG2CNT: usize = 0x00C; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BG3CNT` is never used [INFO] [stdout] --> src/memory/io_handlers.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const BG3CNT: usize = 0x00E; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `THIRTYTWO` is never constructed [INFO] [stdout] --> src/memory/io_handlers.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 24 | enum BitMask { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | THIRTYTWO(u32, u32), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BitMask` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:509:17 [INFO] [stdout] | [INFO] [stdout] 509 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::single_data_swap) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 509 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::single_data_swap as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)) [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:518:17 [INFO] [stdout] | [INFO] [stdout] 518 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::block_dt_execution) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 518 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::block_dt_execution as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)) [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:526:17 [INFO] [stdout] | [INFO] [stdout] 526 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::arm_branch_and_exchange) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 526 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::arm_branch_and_exchange as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)) [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:536:17 [INFO] [stdout] | [INFO] [stdout] 536 | assert!(cpu.decode_arm_instruction(instruction).executable == CPU::arm_software_interrupt); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 536 | assert!(std::ptr::fn_addr_eq(cpu.decode_arm_instruction(instruction).executable, CPU::arm_software_interrupt as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:555:17 [INFO] [stdout] | [INFO] [stdout] 555 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 555 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:556:17 [INFO] [stdout] | [INFO] [stdout] 556 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 556 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:567:17 [INFO] [stdout] | [INFO] [stdout] 567 | assert!(decoded_instruction.executable == CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 567 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:568:17 [INFO] [stdout] | [INFO] [stdout] 568 | assert!(decoded_instruction.executable != CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 568 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 579 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:580:17 [INFO] [stdout] | [INFO] [stdout] 580 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 580 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:591:17 [INFO] [stdout] | [INFO] [stdout] 591 | assert!(decoded_instruction.executable == CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 591 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:592:17 [INFO] [stdout] | [INFO] [stdout] 592 | assert!(decoded_instruction.executable != CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 592 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:603:17 [INFO] [stdout] | [INFO] [stdout] 603 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 603 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:604:17 [INFO] [stdout] | [INFO] [stdout] 604 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 604 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:614:17 [INFO] [stdout] | [INFO] [stdout] 614 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 614 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:615:17 [INFO] [stdout] | [INFO] [stdout] 615 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 615 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:625:17 [INFO] [stdout] | [INFO] [stdout] 625 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 625 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:626:17 [INFO] [stdout] | [INFO] [stdout] 626 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 626 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:636:17 [INFO] [stdout] | [INFO] [stdout] 636 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 636 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:637:17 [INFO] [stdout] | [INFO] [stdout] 637 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 637 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:647:17 [INFO] [stdout] | [INFO] [stdout] 647 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 647 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:648:17 [INFO] [stdout] | [INFO] [stdout] 648 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 648 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:658:17 [INFO] [stdout] | [INFO] [stdout] 658 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 658 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:659:17 [INFO] [stdout] | [INFO] [stdout] 659 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 659 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:670:17 [INFO] [stdout] | [INFO] [stdout] 670 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 670 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:671:17 [INFO] [stdout] | [INFO] [stdout] 671 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 671 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:682:17 [INFO] [stdout] | [INFO] [stdout] 682 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 682 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:683:17 [INFO] [stdout] | [INFO] [stdout] 683 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 683 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:688:17 [INFO] [stdout] | [INFO] [stdout] 688 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 688 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:689:17 [INFO] [stdout] | [INFO] [stdout] 689 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 689 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:694:17 [INFO] [stdout] | [INFO] [stdout] 694 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 694 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:695:17 [INFO] [stdout] | [INFO] [stdout] 695 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 695 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:707:17 [INFO] [stdout] | [INFO] [stdout] 707 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 707 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:708:17 [INFO] [stdout] | [INFO] [stdout] 708 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 708 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:713:17 [INFO] [stdout] | [INFO] [stdout] 713 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 713 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:714:17 [INFO] [stdout] | [INFO] [stdout] 714 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 714 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:725:17 [INFO] [stdout] | [INFO] [stdout] 725 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 725 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:726:17 [INFO] [stdout] | [INFO] [stdout] 726 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 726 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:731:17 [INFO] [stdout] | [INFO] [stdout] 731 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 731 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:732:17 [INFO] [stdout] | [INFO] [stdout] 732 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 732 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:745:17 [INFO] [stdout] | [INFO] [stdout] 745 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 745 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:746:17 [INFO] [stdout] | [INFO] [stdout] 746 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 746 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:752:17 [INFO] [stdout] | [INFO] [stdout] 752 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 752 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:753:17 [INFO] [stdout] | [INFO] [stdout] 753 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 753 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:767:17 [INFO] [stdout] | [INFO] [stdout] 767 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 767 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:768:17 [INFO] [stdout] | [INFO] [stdout] 768 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 768 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:774:17 [INFO] [stdout] | [INFO] [stdout] 774 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 774 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:775:17 [INFO] [stdout] | [INFO] [stdout] 775 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 775 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:781:17 [INFO] [stdout] | [INFO] [stdout] 781 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 781 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:782:17 [INFO] [stdout] | [INFO] [stdout] 782 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 782 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:791:17 [INFO] [stdout] | [INFO] [stdout] 791 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 791 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:792:17 [INFO] [stdout] | [INFO] [stdout] 792 | assert!(decoded_instruction.executable == CPU::data_processing_instruction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 792 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::data_processing_instruction as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:991:17 [INFO] [stdout] | [INFO] [stdout] 991 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 991 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:992:17 [INFO] [stdout] | [INFO] [stdout] 992 | assert!(decoded_instruction.executable == CPU::sdt_imm_offset); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 992 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::sdt_imm_offset as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1006:17 [INFO] [stdout] | [INFO] [stdout] 1006 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1006 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1007:17 [INFO] [stdout] | [INFO] [stdout] 1007 | assert!(decoded_instruction.executable == CPU::thumb_sdt_sp_imm); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1007 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_sdt_sp_imm as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1021:17 [INFO] [stdout] | [INFO] [stdout] 1021 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1021 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1022:17 [INFO] [stdout] | [INFO] [stdout] 1022 | assert!(decoded_instruction.executable == CPU::thumb_add_offset_to_sp); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1022 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_add_offset_to_sp as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1035:17 [INFO] [stdout] | [INFO] [stdout] 1035 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1035 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1036:17 [INFO] [stdout] | [INFO] [stdout] 1036 | assert!(decoded_instruction.executable == CPU::thumb_push_pop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1036 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_push_pop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1049:17 [INFO] [stdout] | [INFO] [stdout] 1049 | assert!(decoded_instruction.executable != CPU::arm_nop); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1049 | assert!(!std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::arm_nop as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | ++++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/arm7tdmi/decoder.rs:1050:17 [INFO] [stdout] | [INFO] [stdout] 1050 | assert!(decoded_instruction.executable == CPU::thumb_multiple_load_or_store); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] help: refactor your code, or use `std::ptr::fn_addr_eq` to suppress the lint [INFO] [stdout] | [INFO] [stdout] 1050 | assert!(std::ptr::fn_addr_eq(decoded_instruction.executable, CPU::thumb_multiple_load_or_store as for<'a> fn(&'a mut cpu::CPU, u32) -> u8)); [INFO] [stdout] | +++++++++++++++++++++ ~ +++++++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.37s [INFO] running `Command { std: "docker" "inspect" "506f1f7ea3b540cb5c90f7dec285597c7e34c46af3f03053bd67aabb70a8a94d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "506f1f7ea3b540cb5c90f7dec285597c7e34c46af3f03053bd67aabb70a8a94d", kill_on_drop: false }` [INFO] [stdout] 506f1f7ea3b540cb5c90f7dec285597c7e34c46af3f03053bd67aabb70a8a94d