[INFO] cloning repository https://github.com/cfeitong/cft-riscv-vm [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cfeitong/cft-riscv-vm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcfeitong%2Fcft-riscv-vm", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcfeitong%2Fcft-riscv-vm'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 37d095ea4d735f4981681b597c9ca6b70ee3765b [INFO] testing cfeitong/cft-riscv-vm against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcfeitong%2Fcft-riscv-vm" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/cfeitong/cft-riscv-vm [INFO] finished tweaking git repo https://github.com/cfeitong/cft-riscv-vm [INFO] tweaked toml for git repo https://github.com/cfeitong/cft-riscv-vm written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cfeitong/cft-riscv-vm on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/cfeitong/cft-riscv-vm 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tempfile v3.12.0 [INFO] [stderr] Downloaded fastrand v2.1.1 [INFO] [stderr] Downloaded errno v0.3.9 [INFO] [stderr] Downloaded funty v2.0.0 [INFO] [stderr] Downloaded tracing-error v0.2.0 [INFO] [stderr] Downloaded wyz v0.5.1 [INFO] [stderr] Downloaded valuable v0.1.0 [INFO] [stderr] Downloaded eyre v0.6.12 [INFO] [stderr] Downloaded ruzstd v0.3.1 [INFO] [stderr] Downloaded miniz_oxide v0.7.4 [INFO] [stderr] Downloaded cc v1.1.21 [INFO] [stderr] Downloaded flate2 v1.0.33 [INFO] [stderr] Downloaded backtrace v0.3.71 [INFO] [stderr] Downloaded proc-macro2 v1.0.86 [INFO] [stderr] Downloaded owo-colors v3.5.0 [INFO] [stderr] Downloaded color-spantrace v0.2.1 [INFO] [stderr] Downloaded tracing-subscriber v0.3.18 [INFO] [stderr] Downloaded bitvec v1.0.1 [INFO] [stderr] Downloaded thiserror-impl v1.0.64 [INFO] [stderr] Downloaded object v0.31.1 [INFO] [stderr] Downloaded twox-hash v1.6.3 [INFO] [stderr] Downloaded syn v2.0.77 [INFO] [stderr] Downloaded pin-project-lite v0.2.14 [INFO] [stderr] Downloaded radium v0.7.0 [INFO] [stderr] Downloaded thiserror v1.0.64 [INFO] [stderr] Downloaded rustix v0.38.37 [INFO] [stderr] Downloaded color-eyre v0.6.3 [INFO] [stderr] Downloaded libc v0.2.158 [INFO] [stderr] Downloaded linux-raw-sys v0.4.14 [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 08497e94a38be23963fc401973e33d23da589a9bc50098d9319c70f3e6a7843e [INFO] running `Command { std: "docker" "start" "-a" "08497e94a38be23963fc401973e33d23da589a9bc50098d9319c70f3e6a7843e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "08497e94a38be23963fc401973e33d23da589a9bc50098d9319c70f3e6a7843e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "08497e94a38be23963fc401973e33d23da589a9bc50098d9319c70f3e6a7843e", kill_on_drop: false }` [INFO] [stdout] 08497e94a38be23963fc401973e33d23da589a9bc50098d9319c70f3e6a7843e [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 0f7c22f163789e910368fc0bd8580e02396becd4712883ee70a53639c1ac90f0 [INFO] running `Command { std: "docker" "start" "-a" "0f7c22f163789e910368fc0bd8580e02396becd4712883ee70a53639c1ac90f0", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling cc v1.1.21 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling gimli v0.28.1 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling miniz_oxide v0.7.4 [INFO] [stderr] Compiling rustc-demangle v0.1.24 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling object v0.32.2 [INFO] [stderr] Compiling tap v1.0.1 [INFO] [stderr] Compiling indenter v0.3.3 [INFO] [stderr] Compiling owo-colors v3.5.0 [INFO] [stderr] Compiling wyz v0.5.1 [INFO] [stderr] Compiling funty v2.0.0 [INFO] [stderr] Compiling backtrace v0.3.71 [INFO] [stderr] Compiling bitvec v1.0.1 [INFO] [stderr] Compiling addr2line v0.21.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling tracing-error v0.2.0 [INFO] [stderr] Compiling color-spantrace v0.2.1 [INFO] [stderr] Compiling color-eyre v0.6.3 [INFO] [stderr] Compiling cft-riscv-vm v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `low_bitmask_u8` [INFO] [stdout] --> src/instruction/format.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{low_bitmask_u32, low_bitmask_u8}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `lazy_cell` has been stable since 1.80.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(lazy_cell)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:206:14 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [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: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:206:32 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:210:34 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:277:14 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:281:15 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:281:33 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:285:13 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:285:31 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:289:31 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:293:13 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:293:31 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:297:12 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:297:30 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:301:19 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:301:37 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INST_SIZE` is never used [INFO] [stdout] --> src/cpu.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const INST_SIZE: u32 = 4; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `reg`, `csr`, `pc`, and `bus` are never read [INFO] [stdout] --> src/cpu.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Cpu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 9 | pub reg: [u32; 32], [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | pub csr: [u32; N_CSR], [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | pub pc: u32, [INFO] [stdout] | ^^ [INFO] [stdout] 12 | pub bus: Bus, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `execute`, and `reset` are never used [INFO] [stdout] --> src/cpu.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Cpu { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn execute(&mut self, ins_buf: &[u32]) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InstExecResult` is never used [INFO] [stdout] --> src/cpu.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ReturnTarget` is never used [INFO] [stdout] --> src/cpu.rs:55:10 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum ReturnTarget { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InstException` is never used [INFO] [stdout] --> src/cpu.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | pub enum InstException { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `base` and `mem` are never read [INFO] [stdout] --> src/cpu.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct Bus { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 66 | base: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 67 | mem: Mem, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `read` and `write` are never used [INFO] [stdout] --> src/cpu.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 70 | impl Bus { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] 71 | pub fn read(&self, addr: u32, buf: &mut [u8]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn write(&mut self, addr: u32, data: &[u8]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu.rs:94:16 [INFO] [stdout] | [INFO] [stdout] 94 | pub struct Mem(pub Vec); [INFO] [stdout] | --- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `OPCODE_SIZE` is never used [INFO] [stdout] --> src/instruction/mod.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const OPCODE_SIZE: usize = 1 << 5; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `InsImpl` is never used [INFO] [stdout] --> src/instruction/mod.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | type InsImpl = fn(u32, &mut Cpu) -> InstExecResult; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Instruction` is never constructed [INFO] [stdout] --> src/instruction/mod.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Instruction(pub u32); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Instruction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opcode` is never used [INFO] [stdout] --> src/instruction/mod.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Instruction { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 14 | pub fn opcode(self) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `instruction_array` is never used [INFO] [stdout] --> src/instruction/mod.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn instruction_array() -> &'static [InsImpl; OPCODE_SIZE] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `nop` is never used [INFO] [stdout] --> src/instruction/mod.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn nop(_: u32, _: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `low_bitmask_u8` is never used [INFO] [stdout] --> src/instruction/mod.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn low_bitmask_u8(cnt: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `low_bitmask_u32` is never used [INFO] [stdout] --> src/instruction/mod.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | const fn low_bitmask_u32(cnt: usize) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RFormat` is never constructed [INFO] [stdout] --> src/instruction/format.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct RFormat(pub u32); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `funct7`, `rs2`, `rs1`, `funct3`, `rd`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl RFormat { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 8 | pub fn funct7(self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn rs2(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn rs1(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn funct3(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn rd(self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IFormat` is never constructed [INFO] [stdout] --> src/instruction/format.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct IFormat(pub u32); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `imm`, `rs1`, `funct3`, `rd`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl IFormat { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 38 | pub fn imm(self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn rs1(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn funct3(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn rd(self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SFormat` is never constructed [INFO] [stdout] --> src/instruction/format.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct SFormat(pub u32); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `imm`, `rs2`, `rs1`, `funct3`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 63 | impl SFormat { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 64 | pub fn imm(self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn rs2(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn rs1(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn funct3(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SBFormat` is never constructed [INFO] [stdout] --> src/instruction/format.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct SBFormat(pub u32); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SBFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `imm`, `rs2`, `rs1`, `funct3`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl SBFormat { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 90 | pub fn imm(self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn rs2(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn rs1(self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn funct3(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UFormat` is never constructed [INFO] [stdout] --> src/instruction/format.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | pub struct UFormat(pub u32); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `imm`, `rd`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl UFormat { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 120 | pub fn imm(self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn rd(self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UJFormat` is never constructed [INFO] [stdout] --> src/instruction/format.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | pub struct UJFormat(pub u32); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UJFormat` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `imm`, `rd`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:138:12 [INFO] [stdout] | [INFO] [stdout] 137 | impl UJFormat { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 138 | pub fn imm(self) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn rd(self) -> u8 { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SHIFT_MASK` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const SHIFT_MASK: u32 = 0b11111; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `OPCODE2INS_IMPL` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub static OPCODE2INS_IMPL: LazyLock> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lui` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn lui(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `auipc` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn auipc(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `addi` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn addi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slti` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn slti(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sltiu` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn sltiu(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xori` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn xori(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ori` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn ori(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `andi` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:76:8 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn andi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slli` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn slli(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `srli` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn srli(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `srai` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn srai(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:112:8 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn add(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sub` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn sub(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sll` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:130:8 [INFO] [stdout] | [INFO] [stdout] 130 | pub fn sll(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slt` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:139:8 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn slt(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sltu` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | pub fn sltu(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `xor` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:161:8 [INFO] [stdout] | [INFO] [stdout] 161 | pub fn xor(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `srl` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:170:8 [INFO] [stdout] | [INFO] [stdout] 170 | pub fn srl(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sra` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn sra(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `or` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:188:8 [INFO] [stdout] | [INFO] [stdout] 188 | pub fn or(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `and` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:197:8 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn and(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fence` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:206:8 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fence_i` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `csrrw` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:214:8 [INFO] [stdout] | [INFO] [stdout] 214 | pub fn csrrw(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `csrrs` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:224:8 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn csrrs(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `csrrc` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 234 | pub fn csrrc(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `csrrwi` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:244:8 [INFO] [stdout] | [INFO] [stdout] 244 | pub fn csrrwi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `csrrsi` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn csrrsi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `csrrci` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:266:8 [INFO] [stdout] | [INFO] [stdout] 266 | pub fn csrrci(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ecall` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:277:8 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ebreak` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:281:8 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `uret` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:285:8 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sret` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:289:8 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mret` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:293:8 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wfi` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:297:8 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sfence_vma` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:301:8 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `l` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:305:8 [INFO] [stdout] | [INFO] [stdout] 305 | pub fn l(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `s` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:323:8 [INFO] [stdout] | [INFO] [stdout] 323 | pub fn s(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `jal` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:339:8 [INFO] [stdout] | [INFO] [stdout] 339 | pub fn jal(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `jalr` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:348:8 [INFO] [stdout] | [INFO] [stdout] 348 | pub fn jalr(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `beq` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:358:8 [INFO] [stdout] | [INFO] [stdout] 358 | pub fn beq(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bne` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:369:8 [INFO] [stdout] | [INFO] [stdout] 369 | pub fn bne(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `blt` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | pub fn blt(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bge` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | pub fn bge(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bltu` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:402:8 [INFO] [stdout] | [INFO] [stdout] 402 | pub fn bltu(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bgeu` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:413:8 [INFO] [stdout] | [INFO] [stdout] 413 | pub fn bgeu(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_mem` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:424:4 [INFO] [stdout] | [INFO] [stdout] 424 | fn load_mem( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `store_mem` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:441:4 [INFO] [stdout] | [INFO] [stdout] 441 | fn store_mem(instruction: SFormat, cpu: &mut Cpu) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bit_op` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:451:4 [INFO] [stdout] | [INFO] [stdout] 451 | fn bit_op(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `alu_op` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:474:4 [INFO] [stdout] | [INFO] [stdout] 474 | fn alu_op(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fence_op` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:505:4 [INFO] [stdout] | [INFO] [stdout] 505 | fn fence_op(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `special_op` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:516:4 [INFO] [stdout] | [INFO] [stdout] 516 | fn special_op(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `env_op` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:532:4 [INFO] [stdout] | [INFO] [stdout] 532 | fn env_op(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `branch_op` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:548:4 [INFO] [stdout] | [INFO] [stdout] 548 | fn branch_op(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `register_instructions` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:563:4 [INFO] [stdout] | [INFO] [stdout] 563 | fn register_instructions(map: &mut BTreeMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sext` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:577:4 [INFO] [stdout] | [INFO] [stdout] 577 | fn sext(imm: u32, msb: usize) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `uext` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:586:4 [INFO] [stdout] | [INFO] [stdout] 586 | fn uext(imm: u32, _: usize) -> u32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.62s [INFO] running `Command { std: "docker" "inspect" "0f7c22f163789e910368fc0bd8580e02396becd4712883ee70a53639c1ac90f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0f7c22f163789e910368fc0bd8580e02396becd4712883ee70a53639c1ac90f0", kill_on_drop: false }` [INFO] [stdout] 0f7c22f163789e910368fc0bd8580e02396becd4712883ee70a53639c1ac90f0 [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--no-run" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] a981ca2ea0cf43db3d91a9391adadc24a78a2334a04081d8eba61e8a15f6eb29 [INFO] running `Command { std: "docker" "start" "-a" "a981ca2ea0cf43db3d91a9391adadc24a78a2334a04081d8eba61e8a15f6eb29", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling thiserror v1.0.64 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling miniz_oxide v0.8.0 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling twox-hash v1.6.3 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling tracing-subscriber v0.3.18 [INFO] [stderr] Compiling flate2 v1.0.33 [INFO] [stderr] Compiling object v0.32.2 [INFO] [stderr] Compiling fastrand v2.1.1 [INFO] [stderr] Compiling tempfile v3.12.0 [INFO] [stderr] Compiling backtrace v0.3.71 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling ruzstd v0.3.1 [INFO] [stderr] Compiling tracing-error v0.2.0 [INFO] [stderr] Compiling color-spantrace v0.2.1 [INFO] [stderr] Compiling color-eyre v0.6.3 [INFO] [stderr] Compiling object v0.31.1 [INFO] [stderr] Compiling cft-riscv-vm v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `low_bitmask_u8` [INFO] [stdout] --> src/instruction/format.rs:1:30 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{low_bitmask_u32, low_bitmask_u8}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `lazy_cell` has been stable since 1.80.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(lazy_cell)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:206:14 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [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: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:206:32 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:210:34 [INFO] [stdout] | [INFO] [stdout] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:277:14 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:277:32 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:281:15 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:281:33 [INFO] [stdout] | [INFO] [stdout] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:285:13 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:285:31 [INFO] [stdout] | [INFO] [stdout] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:289:13 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:289:31 [INFO] [stdout] | [INFO] [stdout] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:293:13 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:293:31 [INFO] [stdout] | [INFO] [stdout] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:297:12 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:297:30 [INFO] [stdout] | [INFO] [stdout] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instruction` [INFO] [stdout] --> src/instruction/rv32i.rs:301:19 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/instruction/rv32i.rs:301:37 [INFO] [stdout] | [INFO] [stdout] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset` is never used [INFO] [stdout] --> src/cpu.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Cpu { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | Exception(InstException), [INFO] [stdout] | --------- ^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 49 - Exception(InstException), [INFO] [stdout] 49 + Exception(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | Return(ReturnTarget), [INFO] [stdout] | ------ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 50 - Return(ReturnTarget), [INFO] [stdout] 50 + Return(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/cpu.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | BadInst(String), [INFO] [stdout] | ------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 52 - BadInst(String), [INFO] [stdout] 52 + BadInst(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `low_bitmask_u8` is never used [INFO] [stdout] --> src/instruction/mod.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn low_bitmask_u8(cnt: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `funct7`, `funct3`, and `opcode` are never used [INFO] [stdout] --> src/instruction/format.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl RFormat { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 8 | pub fn funct7(self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn funct3(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opcode` is never used [INFO] [stdout] --> src/instruction/format.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl IFormat { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opcode` is never used [INFO] [stdout] --> src/instruction/format.rs:80:12 [INFO] [stdout] | [INFO] [stdout] 63 | impl SFormat { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opcode` is never used [INFO] [stdout] --> src/instruction/format.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl SBFormat { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opcode` is never used [INFO] [stdout] --> src/instruction/format.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl UFormat { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opcode` is never used [INFO] [stdout] --> src/instruction/format.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 137 | impl UJFormat { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn opcode(self) -> u8 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slli` is never used [INFO] [stdout] --> src/instruction/rv32i.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn slli(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 31.73s [INFO] running `Command { std: "docker" "inspect" "a981ca2ea0cf43db3d91a9391adadc24a78a2334a04081d8eba61e8a15f6eb29", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a981ca2ea0cf43db3d91a9391adadc24a78a2334a04081d8eba61e8a15f6eb29", kill_on_drop: false }` [INFO] [stdout] a981ca2ea0cf43db3d91a9391adadc24a78a2334a04081d8eba61e8a15f6eb29 [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "test" "--frozen" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] e102f1db7df619d9fd1feb6cf1df347606722fb8dc3c4be24c3c1a5be5743275 [INFO] running `Command { std: "docker" "start" "-a" "e102f1db7df619d9fd1feb6cf1df347606722fb8dc3c4be24c3c1a5be5743275", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `low_bitmask_u8` [INFO] [stderr] --> src/instruction/format.rs:1:30 [INFO] [stderr] | [INFO] [stderr] 1 | use super::{low_bitmask_u32, low_bitmask_u8}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the feature `lazy_cell` has been stable since 1.80.0 and no longer requires an attribute to enable [INFO] [stderr] --> src/main.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(lazy_cell)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(stable_features)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:206:14 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:206:32 [INFO] [stderr] | [INFO] [stderr] 206 | pub fn fence(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:210:16 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:210:34 [INFO] [stderr] | [INFO] [stderr] 210 | pub fn fence_i(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:277:14 [INFO] [stderr] | [INFO] [stderr] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:277:32 [INFO] [stderr] | [INFO] [stderr] 277 | pub fn ecall(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:281:15 [INFO] [stderr] | [INFO] [stderr] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:281:33 [INFO] [stderr] | [INFO] [stderr] 281 | pub fn ebreak(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:285:13 [INFO] [stderr] | [INFO] [stderr] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:285:31 [INFO] [stderr] | [INFO] [stderr] 285 | pub fn uret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:289:13 [INFO] [stderr] | [INFO] [stderr] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:289:31 [INFO] [stderr] | [INFO] [stderr] 289 | pub fn sret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:293:31 [INFO] [stderr] | [INFO] [stderr] 293 | pub fn mret(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:297:12 [INFO] [stderr] | [INFO] [stderr] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:297:30 [INFO] [stderr] | [INFO] [stderr] 297 | pub fn wfi(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `instruction` [INFO] [stderr] --> src/instruction/rv32i.rs:301:19 [INFO] [stderr] | [INFO] [stderr] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_instruction` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/instruction/rv32i.rs:301:37 [INFO] [stderr] | [INFO] [stderr] 301 | pub fn sfence_vma(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: method `reset` is never used [INFO] [stderr] --> src/cpu.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 26 | impl Cpu { [INFO] [stderr] | -------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 42 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu.rs:49:15 [INFO] [stderr] | [INFO] [stderr] 49 | Exception(InstException), [INFO] [stderr] | --------- ^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 49 - Exception(InstException), [INFO] [stderr] 49 + Exception(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | Return(ReturnTarget), [INFO] [stderr] | ------ ^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 50 - Return(ReturnTarget), [INFO] [stderr] 50 + Return(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/cpu.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | BadInst(String), [INFO] [stderr] | ------- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 52 - BadInst(String), [INFO] [stderr] 52 + BadInst(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: function `low_bitmask_u8` is never used [INFO] [stderr] --> src/instruction/mod.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | fn low_bitmask_u8(cnt: usize) -> u8 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `funct7`, `funct3`, and `opcode` are never used [INFO] [stderr] --> src/instruction/format.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 7 | impl RFormat { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] 8 | pub fn funct7(self) -> u32 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 20 | pub fn funct3(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 28 | pub fn opcode(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `opcode` is never used [INFO] [stderr] --> src/instruction/format.rs:54:12 [INFO] [stderr] | [INFO] [stderr] 37 | impl IFormat { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 54 | pub fn opcode(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `opcode` is never used [INFO] [stderr] --> src/instruction/format.rs:80:12 [INFO] [stderr] | [INFO] [stderr] 63 | impl SFormat { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 80 | pub fn opcode(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `opcode` is never used [INFO] [stderr] --> src/instruction/format.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 89 | impl SBFormat { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 110 | pub fn opcode(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `opcode` is never used [INFO] [stderr] --> src/instruction/format.rs:128:12 [INFO] [stderr] | [INFO] [stderr] 119 | impl UFormat { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 128 | pub fn opcode(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `opcode` is never used [INFO] [stderr] --> src/instruction/format.rs:150:12 [INFO] [stderr] | [INFO] [stderr] 137 | impl UJFormat { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 150 | pub fn opcode(self) -> u8 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `slli` is never used [INFO] [stderr] --> src/instruction/rv32i.rs:85:8 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn slli(instruction: u32, cpu: &mut Cpu) -> InstExecResult { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: `cft-riscv-vm` (bin "cft-riscv-vm" test) generated 32 warnings (run `cargo fix --bin "cft-riscv-vm" --tests` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/x86_64-unknown-linux-musl/debug/deps/cft_riscv_vm-43e8edc5fd9db8ca) [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test instruction::rv32i::tests::test_auipc ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_and_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_bne_rs1_rs2_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_andi_rd_rs1_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_beq_rs1_rs2_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_add_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_auipc_rd_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_addi ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lbu_rd_offset_rs1 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lh_rd_offset_rs1 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_jalr_rd_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lui_rd_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lui ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_jal_rd_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lhu_rd_offset_rs1 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lb_rd_offset_rs1 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_or_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_lw_rd_offset_rs1 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_sll_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_sltiu ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_slt_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_ori ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_slli_rd_rs1_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_sltu_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_slti ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_srli_rd_rs1_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_sra_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_srai_rd_rs1_imm ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_sub_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_xori ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_srl_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_xor_rd_rs1_rs2 ... FAILED [INFO] [stdout] test instruction::rv32i::tests::test_l ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_auipc stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_and_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_bne_rs1_rs2_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_andi_rd_rs1_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_beq_rs1_rs2_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_add_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_auipc_rd_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_addi stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lbu_rd_offset_rs1 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lh_rd_offset_rs1 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_jalr_rd_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lui_rd_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lui stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_jal_rd_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lhu_rd_offset_rs1 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lb_rd_offset_rs1 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_or_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_lw_rd_offset_rs1 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_sll_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_sltiu stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_slt_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_ori stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_slli_rd_rs1_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_sltu_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_slti stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_srli_rd_rs1_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_sra_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_srai_rd_rs1_imm stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_sub_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_xori stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_srl_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_xor_rd_rs1_rs2 stdout ---- [INFO] [stdout] Error: No such file or directory (os error 2) [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] src/instruction/rv32i.rs:602:22 [INFO] [stdout] [INFO] [stdout] ---- instruction::rv32i::tests::test_l stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'instruction::rv32i::tests::test_l' panicked at src/cpu.rs:78:22: [INFO] [stdout] attempt to subtract with overflow [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x75e40c96d4f2 - std::backtrace_rs::backtrace::libunwind::trace::h559918daaaf51ab7 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x75e40c96d4f2 - std::backtrace_rs::backtrace::trace_unsynchronized::hb04fbcf80d07af8b [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x75e40c96d4f2 - std::sys::backtrace::_print_fmt::h7c0bbbbfac0065d4 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:66:9 [INFO] [stdout] 3: 0x75e40c96d4f2 - ::fmt::hb62c8ed31943daa5 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:39:26 [INFO] [stdout] 4: 0x75e40c9a8423 - core::fmt::rt::Argument::fmt::he5eaa7dd607ed4c9 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/fmt/rt.rs:173:76 [INFO] [stdout] 5: 0x75e40c9a8423 - core::fmt::write::h375399f8cb90b45a [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/fmt/mod.rs:1460:25 [INFO] [stdout] 6: 0x75e40c96a5a3 - std::io::default_write_fmt::hdc1b4dd565dd0099 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x75e40c96a5a3 - std::io::Write::write_fmt::h29f6044e9bc43c23 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/io/mod.rs:1954:13 [INFO] [stdout] 8: 0x75e40c96d342 - std::sys::backtrace::BacktraceLock::print::ha189c586374f916a [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:42:9 [INFO] [stdout] 9: 0x75e40c96eb7c - std::panicking::default_hook::{{closure}}::ha3a26c98ff210e12 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:300:27 [INFO] [stdout] 10: 0x75e40c96e9d2 - std::panicking::default_hook::h8c8a86b4390ab794 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:324:9 [INFO] [stdout] 11: 0x75e40c8c0324 - as core::ops::function::Fn>::call::ha39ae63ed1e9a130 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1980:9 [INFO] [stdout] 12: 0x75e40c8c0324 - test::test_main_with_exit_callback::{{closure}}::h9df7c328ebe18c28 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x75e40c96f5e3 - as core::ops::function::Fn>::call::h96b7201b552e9069 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1980:9 [INFO] [stdout] 14: 0x75e40c96f5e3 - std::panicking::rust_panic_with_hook::hb3b66c2e80efa371 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:841:13 [INFO] [stdout] 15: 0x75e40c96f296 - std::panicking::begin_panic_handler::{{closure}}::h9c68d0f839e62070 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:699:13 [INFO] [stdout] 16: 0x75e40c96d9f9 - std::sys::backtrace::__rust_end_short_backtrace::h68d22ddde4a73ad6 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:168:18 [INFO] [stdout] 17: 0x75e40c96ef5d - __rustc[f4ffc7196a45a630]::rust_begin_unwind [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:697:5 [INFO] [stdout] 18: 0x75e40c830610 - core::panicking::panic_fmt::h8cdd4c81eb9069aa [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panicking.rs:75:14 [INFO] [stdout] 19: 0x75e40c830cc7 - core::panicking::panic_const::panic_const_sub_overflow::h56c4c482b3229258 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panicking.rs:175:17 [INFO] [stdout] 20: 0x75e40c87045b - cft_riscv_vm::cpu::Bus::write::hde43dc4bcc51b427 [INFO] [stdout] at /opt/rustwide/workdir/src/cpu.rs:78:22 [INFO] [stdout] 21: 0x75e40c8479e6 - cft_riscv_vm::instruction::rv32i::tests::test_l::h9991986fd1e25bbb [INFO] [stdout] at /opt/rustwide/workdir/src/instruction/rv32i.rs:731:17 [INFO] [stdout] 22: 0x75e40c847957 - cft_riscv_vm::instruction::rv32i::tests::test_l::{{closure}}::h66bc9fa5d0b11f6a [INFO] [stdout] at /opt/rustwide/workdir/src/instruction/rv32i.rs:728:20 [INFO] [stdout] 23: 0x75e40c86a076 - core::ops::function::FnOnce::call_once::ha98172055ad3d480 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x75e40c8c5a1b - core::ops::function::FnOnce::call_once::h9633dcf760ae81b2 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x75e40c8c5a1b - test::__rust_begin_short_backtrace::h12ad5e04c8d7b4a5 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:648:18 [INFO] [stdout] 26: 0x75e40c8c4c8e - test::run_test_in_process::{{closure}}::he596b4fd3fa4893c [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:671:74 [INFO] [stdout] 27: 0x75e40c8c4c8e - as core::ops::function::FnOnce<()>>::call_once::hc746bc3fa75190e0 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 28: 0x75e40c8c4c8e - std::panicking::catch_unwind::do_call::hf4843906108d6299 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:589:40 [INFO] [stdout] 29: 0x75e40c8c4c8e - std::panicking::catch_unwind::h849d4e8b03577bb9 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:552:19 [INFO] [stdout] 30: 0x75e40c8c4c8e - std::panic::catch_unwind::ha1f814c1dec025d2 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x75e40c8c4c8e - test::run_test_in_process::h542aad3fe61255e7 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:671:27 [INFO] [stdout] 32: 0x75e40c8c4c8e - test::run_test::{{closure}}::h612788d75908cb63 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:592:43 [INFO] [stdout] 33: 0x75e40c889b14 - test::run_test::{{closure}}::hbfeea3bcb7245123 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/test/src/lib.rs:622:41 [INFO] [stdout] 34: 0x75e40c889b14 - std::sys::backtrace::__rust_begin_short_backtrace::h72542b83b4f87d5b [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/backtrace.rs:152:18 [INFO] [stdout] 35: 0x75e40c88d30a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hff26a7547ea762c9 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/thread/mod.rs:559:17 [INFO] [stdout] 36: 0x75e40c88d30a - as core::ops::function::FnOnce<()>>::call_once::hbee49bc759312884 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/panic/unwind_safe.rs:272:9 [INFO] [stdout] 37: 0x75e40c88d30a - std::panicking::catch_unwind::do_call::h61de12ce5e04e28f [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:589:40 [INFO] [stdout] 38: 0x75e40c88d30a - std::panicking::catch_unwind::h454dd49873d22e18 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panicking.rs:552:19 [INFO] [stdout] 39: 0x75e40c88d30a - std::panic::catch_unwind::h5c15187324f8cebb [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x75e40c88d30a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbc9d9c7427673d42 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/thread/mod.rs:557:30 [INFO] [stdout] 41: 0x75e40c88d30a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hefd458a129ddca13 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x75e40c9720c7 - as core::ops::function::FnOnce>::call_once::h2d6e2e526b02c3da [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1966:9 [INFO] [stdout] 43: 0x75e40c9720c7 - as core::ops::function::FnOnce>::call_once::h1aefced482b33c72 [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/alloc/src/boxed.rs:1966:9 [INFO] [stdout] 44: 0x75e40c9720c7 - std::sys::pal::unix::thread::Thread::new::thread_start::h7c9c6951b48f721d [INFO] [stdout] at /rustc/8de4c7234dd9b97c9d76b58671343fdbbc9a433e/library/std/src/sys/pal/unix/thread.rs:97:17 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] instruction::rv32i::tests::test_add_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_addi [INFO] [stdout] instruction::rv32i::tests::test_and_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_andi_rd_rs1_imm [INFO] [stdout] instruction::rv32i::tests::test_auipc [INFO] [stdout] instruction::rv32i::tests::test_auipc_rd_imm [INFO] [stdout] instruction::rv32i::tests::test_beq_rs1_rs2_imm [INFO] [stdout] instruction::rv32i::tests::test_bne_rs1_rs2_imm [INFO] [stdout] instruction::rv32i::tests::test_jal_rd_imm [INFO] [stdout] instruction::rv32i::tests::test_jalr_rd_imm [INFO] [stdout] instruction::rv32i::tests::test_l [INFO] [stdout] instruction::rv32i::tests::test_lb_rd_offset_rs1 [INFO] [stdout] instruction::rv32i::tests::test_lbu_rd_offset_rs1 [INFO] [stdout] instruction::rv32i::tests::test_lh_rd_offset_rs1 [INFO] [stdout] instruction::rv32i::tests::test_lhu_rd_offset_rs1 [INFO] [stdout] instruction::rv32i::tests::test_lui [INFO] [stdout] instruction::rv32i::tests::test_lui_rd_imm [INFO] [stdout] instruction::rv32i::tests::test_lw_rd_offset_rs1 [INFO] [stdout] instruction::rv32i::tests::test_or_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_ori [INFO] [stdout] instruction::rv32i::tests::test_sll_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_slli_rd_rs1_imm [INFO] [stdout] instruction::rv32i::tests::test_slt_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_slti [INFO] [stdout] instruction::rv32i::tests::test_sltiu [INFO] [stdout] instruction::rv32i::tests::test_sltu_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_sra_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_srai_rd_rs1_imm [INFO] [stdout] instruction::rv32i::tests::test_srl_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_srli_rd_rs1_imm [INFO] [stdout] instruction::rv32i::tests::test_sub_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_xor_rd_rs1_rs2 [INFO] [stdout] instruction::rv32i::tests::test_xori [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 33 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin cft-riscv-vm` [INFO] running `Command { std: "docker" "inspect" "e102f1db7df619d9fd1feb6cf1df347606722fb8dc3c4be24c3c1a5be5743275", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e102f1db7df619d9fd1feb6cf1df347606722fb8dc3c4be24c3c1a5be5743275", kill_on_drop: false }` [INFO] [stdout] e102f1db7df619d9fd1feb6cf1df347606722fb8dc3c4be24c3c1a5be5743275