[INFO] fetching crate substrate-wasmtime-runtime 0.16.0-threadsafe.4... [INFO] testing substrate-wasmtime-runtime-0.16.0-threadsafe.4 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate substrate-wasmtime-runtime 0.16.0-threadsafe.4 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate substrate-wasmtime-runtime 0.16.0-threadsafe.4 [INFO] finished tweaking crates.io crate substrate-wasmtime-runtime 0.16.0-threadsafe.4 [INFO] tweaked toml for crates.io crate substrate-wasmtime-runtime 0.16.0-threadsafe.4 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate substrate-wasmtime-runtime 0.16.0-threadsafe.4 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "generate-lockfile" "--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] Locking 101 packages to latest compatible versions [INFO] [stderr] Adding cfg-if v0.1.10 (available: v1.0.4) [INFO] [stderr] Adding indexmap v1.9.3 (available: v2.14.0) [INFO] [stderr] Adding memoffset v0.5.6 (available: v0.9.1) [INFO] [stderr] Adding more-asserts v0.2.2 (available: v0.3.1) [INFO] [stderr] Adding region v2.2.0 (available: v3.0.2) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.18) [INFO] [stderr] Adding wasmtime-environ v0.16.0 (available: v43.0.1) [INFO] [stderr] Adding zstd-sys v1.4.18+zstd.1.4.7 (available: v1.6.3+zstd.1.5.2) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 85f4ff872f02d6746de3914363c9b38afda2ca89f06488844e0a5fbc058c00d6 [INFO] running `Command { std: "docker" "start" "-a" "85f4ff872f02d6746de3914363c9b38afda2ca89f06488844e0a5fbc058c00d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "85f4ff872f02d6746de3914363c9b38afda2ca89f06488844e0a5fbc058c00d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "85f4ff872f02d6746de3914363c9b38afda2ca89f06488844e0a5fbc058c00d6", kill_on_drop: false }` [INFO] [stdout] 85f4ff872f02d6746de3914363c9b38afda2ca89f06488844e0a5fbc058c00d6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cb04c2b4a1c4a16f29e31e9675adf929e507b0bfae772f5018e891027541f32a [INFO] running `Command { std: "docker" "start" "-a" "cb04c2b4a1c4a16f29e31e9675adf929e507b0bfae772f5018e891027541f32a", kill_on_drop: false }` [INFO] [stderr] Compiling cranelift-codegen-shared v0.63.0 [INFO] [stderr] Compiling itertools v0.9.0 [INFO] [stderr] Compiling target-lexicon v0.10.0 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling byte-tools v0.3.1 [INFO] [stderr] Compiling zstd-safe v2.0.6+zstd.1.4.7 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling regalloc v0.0.21 [INFO] [stderr] Compiling gimli v0.20.0 [INFO] [stderr] Compiling digest v0.8.1 [INFO] [stderr] Compiling dirs-sys v0.3.7 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling opaque-debug v0.2.3 [INFO] [stderr] Compiling fake-simd v0.1.2 [INFO] [stderr] Compiling block-padding v0.1.5 [INFO] [stderr] Compiling wasmtime-environ v0.16.0 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling wasmparser v0.51.4 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling errno v0.2.8 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling block-buffer v0.7.3 [INFO] [stderr] Compiling sha2 v0.8.2 [INFO] [stderr] Compiling base64 v0.12.3 [INFO] [stderr] Compiling more-asserts v0.2.2 [INFO] [stderr] Compiling region v2.2.0 [INFO] [stderr] Compiling directories v2.0.2 [INFO] [stderr] Compiling file-per-thread-logger v0.1.6 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling zstd-sys v1.4.18+zstd.1.4.7 [INFO] [stderr] Compiling substrate-wasmtime-runtime v0.16.0-threadsafe.4 (/opt/rustwide/workdir) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling cranelift-entity v0.63.0 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling cranelift-codegen-meta v0.63.0 [INFO] [stderr] Compiling cranelift-bforest v0.63.0 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling cranelift-codegen v0.63.0 [INFO] [stderr] Compiling cranelift-frontend v0.63.0 [INFO] [stderr] Compiling cranelift-wasm v0.63.0 [INFO] [stderr] Compiling zstd v0.5.4+zstd.1.4.7 [INFO] [stdout] warning: unexpected `cfg` condition value: `clippy` [INFO] [stdout] --> src/lib.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | #![cfg_attr(feature = "clippy", plugin(clippy(conf_file = "../../clippy.toml")))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | feature = "cargo-clippy", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/lib.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | feature = "cargo-clippy", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated constant `region::Protection::ReadWrite`: Use Protection::READ_WRITE instead [INFO] [stdout] --> src/mmap.rs:185:75 [INFO] [stdout] | [INFO] [stdout] 185 | unsafe { region::protect(ptr.add(start), len, region::Protection::ReadWrite) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `needs_signal_handlers` is never read [INFO] [stdout] --> src/memory.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct MmapMemory { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) needs_signal_handlers: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MmapMemory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/instance.rs:337:20 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 337 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/instance.rs:970:20 [INFO] [stdout] | [INFO] [stdout] 970 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 970 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/traphandlers.rs:54:53 [INFO] [stdout] | [INFO] [stdout] 54 | handler.sa_sigaction = trap_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 54 | handler.sa_sigaction = trap_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | register(&mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 65 | register(&raw mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:68:22 [INFO] [stdout] | [INFO] [stdout] 68 | register(&mut PREV_SIGILL, libc::SIGILL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 68 | register(&raw mut PREV_SIGILL, libc::SIGILL); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 72 | register(&mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 72 | register(&raw mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:78:26 [INFO] [stdout] | [INFO] [stdout] 78 | register(&mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 78 | register(&raw mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | libc::SIGSEGV => &PREV_SIGSEGV, [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 88 | libc::SIGSEGV => &raw const PREV_SIGSEGV, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:89:33 [INFO] [stdout] | [INFO] [stdout] 89 | libc::SIGBUS => &PREV_SIGBUS, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 89 | libc::SIGBUS => &raw const PREV_SIGBUS, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:90:33 [INFO] [stdout] | [INFO] [stdout] 90 | libc::SIGFPE => &PREV_SIGFPE, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 90 | libc::SIGFPE => &raw const PREV_SIGFPE, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:91:33 [INFO] [stdout] | [INFO] [stdout] 91 | libc::SIGILL => &PREV_SIGILL, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 91 | libc::SIGILL => &raw const PREV_SIGILL, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:544:36 [INFO] [stdout] | [INFO] [stdout] 544 | wasmtime_memory32_grow as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 544 | wasmtime_memory32_grow as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:546:45 [INFO] [stdout] | [INFO] [stdout] 546 | wasmtime_imported_memory32_grow as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 546 | wasmtime_imported_memory32_grow as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:549:36 [INFO] [stdout] | [INFO] [stdout] 549 | wasmtime_memory32_size as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 549 | wasmtime_memory32_size as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:551:45 [INFO] [stdout] | [INFO] [stdout] 551 | wasmtime_imported_memory32_size as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 551 | wasmtime_imported_memory32_size as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:554:33 [INFO] [stdout] | [INFO] [stdout] 554 | wasmtime_table_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 554 | wasmtime_table_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:557:33 [INFO] [stdout] | [INFO] [stdout] 557 | wasmtime_table_init as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 557 | wasmtime_table_init as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:559:32 [INFO] [stdout] | [INFO] [stdout] 559 | wasmtime_elem_drop as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 559 | wasmtime_elem_drop as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:562:42 [INFO] [stdout] | [INFO] [stdout] 562 | wasmtime_defined_memory_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 562 | wasmtime_defined_memory_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:564:43 [INFO] [stdout] | [INFO] [stdout] 564 | wasmtime_imported_memory_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 564 | wasmtime_imported_memory_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:566:34 [INFO] [stdout] | [INFO] [stdout] 566 | wasmtime_memory_fill as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 566 | wasmtime_memory_fill as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:568:43 [INFO] [stdout] | [INFO] [stdout] 568 | wasmtime_imported_memory_fill as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 568 | wasmtime_imported_memory_fill as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:570:34 [INFO] [stdout] | [INFO] [stdout] 570 | wasmtime_memory_init as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 570 | wasmtime_memory_init as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:572:32 [INFO] [stdout] | [INFO] [stdout] 572 | wasmtime_data_drop as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 572 | wasmtime_data_drop as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.71s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: cranelift-codegen-meta v0.63.0, wasmtime-environ v0.16.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "cb04c2b4a1c4a16f29e31e9675adf929e507b0bfae772f5018e891027541f32a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cb04c2b4a1c4a16f29e31e9675adf929e507b0bfae772f5018e891027541f32a", kill_on_drop: false }` [INFO] [stdout] cb04c2b4a1c4a16f29e31e9675adf929e507b0bfae772f5018e891027541f32a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d3b87560510538c1897df2ff342d2d07125975ebf0b40b44494de3565617977a [INFO] running `Command { std: "docker" "start" "-a" "d3b87560510538c1897df2ff342d2d07125975ebf0b40b44494de3565617977a", kill_on_drop: false }` [INFO] [stdout] warning: unexpected `cfg` condition value: `clippy` [INFO] [stdout] --> src/lib.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | #![cfg_attr(feature = "clippy", plugin(clippy(conf_file = "../../clippy.toml")))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | feature = "cargo-clippy", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/lib.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | feature = "cargo-clippy", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated constant `region::Protection::ReadWrite`: Use Protection::READ_WRITE instead [INFO] [stdout] --> src/mmap.rs:185:75 [INFO] [stdout] | [INFO] [stdout] 185 | unsafe { region::protect(ptr.add(start), len, region::Protection::ReadWrite) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `needs_signal_handlers` is never read [INFO] [stdout] --> src/memory.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct MmapMemory { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) needs_signal_handlers: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MmapMemory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/instance.rs:337:20 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 337 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/instance.rs:970:20 [INFO] [stdout] | [INFO] [stdout] 970 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 970 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/traphandlers.rs:54:53 [INFO] [stdout] | [INFO] [stdout] 54 | handler.sa_sigaction = trap_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 54 | handler.sa_sigaction = trap_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | register(&mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 65 | register(&raw mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:68:22 [INFO] [stdout] | [INFO] [stdout] 68 | register(&mut PREV_SIGILL, libc::SIGILL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 68 | register(&raw mut PREV_SIGILL, libc::SIGILL); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 72 | register(&mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 72 | register(&raw mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:78:26 [INFO] [stdout] | [INFO] [stdout] 78 | register(&mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 78 | register(&raw mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | libc::SIGSEGV => &PREV_SIGSEGV, [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 88 | libc::SIGSEGV => &raw const PREV_SIGSEGV, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:89:33 [INFO] [stdout] | [INFO] [stdout] 89 | libc::SIGBUS => &PREV_SIGBUS, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 89 | libc::SIGBUS => &raw const PREV_SIGBUS, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:90:33 [INFO] [stdout] | [INFO] [stdout] 90 | libc::SIGFPE => &PREV_SIGFPE, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 90 | libc::SIGFPE => &raw const PREV_SIGFPE, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:91:33 [INFO] [stdout] | [INFO] [stdout] 91 | libc::SIGILL => &PREV_SIGILL, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 91 | libc::SIGILL => &raw const PREV_SIGILL, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:544:36 [INFO] [stdout] | [INFO] [stdout] 544 | wasmtime_memory32_grow as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 544 | wasmtime_memory32_grow as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:546:45 [INFO] [stdout] | [INFO] [stdout] 546 | wasmtime_imported_memory32_grow as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 546 | wasmtime_imported_memory32_grow as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:549:36 [INFO] [stdout] | [INFO] [stdout] 549 | wasmtime_memory32_size as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 549 | wasmtime_memory32_size as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:551:45 [INFO] [stdout] | [INFO] [stdout] 551 | wasmtime_imported_memory32_size as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 551 | wasmtime_imported_memory32_size as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:554:33 [INFO] [stdout] | [INFO] [stdout] 554 | wasmtime_table_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 554 | wasmtime_table_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:557:33 [INFO] [stdout] | [INFO] [stdout] 557 | wasmtime_table_init as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 557 | wasmtime_table_init as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:559:32 [INFO] [stdout] | [INFO] [stdout] 559 | wasmtime_elem_drop as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 559 | wasmtime_elem_drop as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:562:42 [INFO] [stdout] | [INFO] [stdout] 562 | wasmtime_defined_memory_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 562 | wasmtime_defined_memory_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:564:43 [INFO] [stdout] | [INFO] [stdout] 564 | wasmtime_imported_memory_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 564 | wasmtime_imported_memory_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling substrate-wasmtime-runtime v0.16.0-threadsafe.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:566:34 [INFO] [stdout] | [INFO] [stdout] 566 | wasmtime_memory_fill as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 566 | wasmtime_memory_fill as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:568:43 [INFO] [stdout] | [INFO] [stdout] 568 | wasmtime_imported_memory_fill as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 568 | wasmtime_imported_memory_fill as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:570:34 [INFO] [stdout] | [INFO] [stdout] 570 | wasmtime_memory_init as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 570 | wasmtime_memory_init as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:572:32 [INFO] [stdout] | [INFO] [stdout] 572 | wasmtime_data_drop as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 572 | wasmtime_data_drop as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `clippy` [INFO] [stdout] --> src/lib.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | #![cfg_attr(feature = "clippy", plugin(clippy(conf_file = "../../clippy.toml")))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | feature = "cargo-clippy", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/lib.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | feature = "cargo-clippy", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated constant `region::Protection::ReadWrite`: Use Protection::READ_WRITE instead [INFO] [stdout] --> src/mmap.rs:185:75 [INFO] [stdout] | [INFO] [stdout] 185 | unsafe { region::protect(ptr.add(start), len, region::Protection::ReadWrite) } [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `needs_signal_handlers` is never read [INFO] [stdout] --> src/memory.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct MmapMemory { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) needs_signal_handlers: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MmapMemory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/instance.rs:337:20 [INFO] [stdout] | [INFO] [stdout] 337 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 337 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/instance.rs:970:20 [INFO] [stdout] | [INFO] [stdout] 970 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 970 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/traphandlers.rs:54:53 [INFO] [stdout] | [INFO] [stdout] 54 | handler.sa_sigaction = trap_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 54 | handler.sa_sigaction = trap_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:65:22 [INFO] [stdout] | [INFO] [stdout] 65 | register(&mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 65 | register(&raw mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:68:22 [INFO] [stdout] | [INFO] [stdout] 68 | register(&mut PREV_SIGILL, libc::SIGILL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 68 | register(&raw mut PREV_SIGILL, libc::SIGILL); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:72:26 [INFO] [stdout] | [INFO] [stdout] 72 | register(&mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 72 | register(&raw mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:78:26 [INFO] [stdout] | [INFO] [stdout] 78 | register(&mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 78 | register(&raw mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:88:34 [INFO] [stdout] | [INFO] [stdout] 88 | libc::SIGSEGV => &PREV_SIGSEGV, [INFO] [stdout] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 88 | libc::SIGSEGV => &raw const PREV_SIGSEGV, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:89:33 [INFO] [stdout] | [INFO] [stdout] 89 | libc::SIGBUS => &PREV_SIGBUS, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 89 | libc::SIGBUS => &raw const PREV_SIGBUS, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:90:33 [INFO] [stdout] | [INFO] [stdout] 90 | libc::SIGFPE => &PREV_SIGFPE, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 90 | libc::SIGFPE => &raw const PREV_SIGFPE, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/traphandlers.rs:91:33 [INFO] [stdout] | [INFO] [stdout] 91 | libc::SIGILL => &PREV_SIGILL, [INFO] [stdout] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `&raw const` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 91 | libc::SIGILL => &raw const PREV_SIGILL, [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:544:36 [INFO] [stdout] | [INFO] [stdout] 544 | wasmtime_memory32_grow as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 544 | wasmtime_memory32_grow as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:546:45 [INFO] [stdout] | [INFO] [stdout] 546 | wasmtime_imported_memory32_grow as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 546 | wasmtime_imported_memory32_grow as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:549:36 [INFO] [stdout] | [INFO] [stdout] 549 | wasmtime_memory32_size as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 549 | wasmtime_memory32_size as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:551:45 [INFO] [stdout] | [INFO] [stdout] 551 | wasmtime_imported_memory32_size as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 551 | wasmtime_imported_memory32_size as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:554:33 [INFO] [stdout] | [INFO] [stdout] 554 | wasmtime_table_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 554 | wasmtime_table_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:557:33 [INFO] [stdout] | [INFO] [stdout] 557 | wasmtime_table_init as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 557 | wasmtime_table_init as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:559:32 [INFO] [stdout] | [INFO] [stdout] 559 | wasmtime_elem_drop as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 559 | wasmtime_elem_drop as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:562:42 [INFO] [stdout] | [INFO] [stdout] 562 | wasmtime_defined_memory_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 562 | wasmtime_defined_memory_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:564:43 [INFO] [stdout] | [INFO] [stdout] 564 | wasmtime_imported_memory_copy as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 564 | wasmtime_imported_memory_copy as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:566:34 [INFO] [stdout] | [INFO] [stdout] 566 | wasmtime_memory_fill as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 566 | wasmtime_memory_fill as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:568:43 [INFO] [stdout] | [INFO] [stdout] 568 | wasmtime_imported_memory_fill as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 568 | wasmtime_imported_memory_fill as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:570:34 [INFO] [stdout] | [INFO] [stdout] 570 | wasmtime_memory_init as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 570 | wasmtime_memory_init as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/vmcontext.rs:572:32 [INFO] [stdout] | [INFO] [stdout] 572 | wasmtime_data_drop as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 572 | wasmtime_data_drop as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.53s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: cranelift-codegen-meta v0.63.0, wasmtime-environ v0.16.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "d3b87560510538c1897df2ff342d2d07125975ebf0b40b44494de3565617977a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d3b87560510538c1897df2ff342d2d07125975ebf0b40b44494de3565617977a", kill_on_drop: false }` [INFO] [stdout] d3b87560510538c1897df2ff342d2d07125975ebf0b40b44494de3565617977a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3b02e59e2be83812aec5dfd7f9231ed310e44551dcfa010c528102db8e738aa2 [INFO] running `Command { std: "docker" "start" "-a" "3b02e59e2be83812aec5dfd7f9231ed310e44551dcfa010c528102db8e738aa2", kill_on_drop: false }` [INFO] [stderr] warning: unexpected `cfg` condition value: `clippy` [INFO] [stderr] --> src/lib.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | #![cfg_attr(feature = "clippy", plugin(clippy(conf_file = "../../clippy.toml")))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `clippy` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stderr] --> src/lib.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | feature = "cargo-clippy", [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stderr] --> src/lib.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | feature = "cargo-clippy", [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stderr] | [INFO] [stderr] = note: no expected values for `feature` [INFO] [stderr] = help: consider adding `cargo-clippy` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated constant `region::Protection::ReadWrite`: Use Protection::READ_WRITE instead [INFO] [stderr] --> src/mmap.rs:185:75 [INFO] [stderr] | [INFO] [stderr] 185 | unsafe { region::protect(ptr.add(start), len, region::Protection::ReadWrite) } [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `needs_signal_handlers` is never read [INFO] [stderr] --> src/memory.rs:58:16 [INFO] [stderr] | [INFO] [stderr] 45 | pub struct MmapMemory { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 58 | pub(crate) needs_signal_handlers: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `MmapMemory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/instance.rs:337:20 [INFO] [stderr] | [INFO] [stderr] 337 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 337 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/instance.rs:970:20 [INFO] [stderr] | [INFO] [stderr] 970 | pub fn exports(&self) -> indexmap::map::Iter { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 970 | pub fn exports(&self) -> indexmap::map::Iter<'_, String, EntityIndex> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/traphandlers.rs:54:53 [INFO] [stderr] | [INFO] [stderr] 54 | handler.sa_sigaction = trap_handler as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 54 | handler.sa_sigaction = trap_handler as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:65:22 [INFO] [stderr] | [INFO] [stderr] 65 | register(&mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stderr] help: use `&raw mut` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 65 | register(&raw mut PREV_SIGSEGV, libc::SIGSEGV); [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:68:22 [INFO] [stderr] | [INFO] [stderr] 68 | register(&mut PREV_SIGILL, libc::SIGILL); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw mut` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 68 | register(&raw mut PREV_SIGILL, libc::SIGILL); [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:72:26 [INFO] [stderr] | [INFO] [stderr] 72 | register(&mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw mut` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 72 | register(&raw mut PREV_SIGFPE, libc::SIGFPE); [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:78:26 [INFO] [stderr] | [INFO] [stderr] 78 | register(&mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw mut` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 78 | register(&raw mut PREV_SIGBUS, libc::SIGBUS); [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:88:34 [INFO] [stderr] | [INFO] [stderr] 88 | libc::SIGSEGV => &PREV_SIGSEGV, [INFO] [stderr] | ^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw const` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 88 | libc::SIGSEGV => &raw const PREV_SIGSEGV, [INFO] [stderr] | +++++++++ [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:89:33 [INFO] [stderr] | [INFO] [stderr] 89 | libc::SIGBUS => &PREV_SIGBUS, [INFO] [stderr] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw const` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 89 | libc::SIGBUS => &raw const PREV_SIGBUS, [INFO] [stderr] | +++++++++ [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:90:33 [INFO] [stderr] | [INFO] [stderr] 90 | libc::SIGFPE => &PREV_SIGFPE, [INFO] [stderr] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw const` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 90 | libc::SIGFPE => &raw const PREV_SIGFPE, [INFO] [stderr] | +++++++++ [INFO] [stderr] [INFO] [stderr] warning: creating a shared reference to mutable static [INFO] [stderr] --> src/traphandlers.rs:91:33 [INFO] [stderr] | [INFO] [stderr] 91 | libc::SIGILL => &PREV_SIGILL, [INFO] [stderr] | ^^^^^^^^^^^^ shared reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `&raw const` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 91 | libc::SIGILL => &raw const PREV_SIGILL, [INFO] [stderr] | +++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:544:36 [INFO] [stderr] | [INFO] [stderr] 544 | wasmtime_memory32_grow as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 544 | wasmtime_memory32_grow as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:546:45 [INFO] [stderr] | [INFO] [stderr] 546 | wasmtime_imported_memory32_grow as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 546 | wasmtime_imported_memory32_grow as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:549:36 [INFO] [stderr] | [INFO] [stderr] 549 | wasmtime_memory32_size as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 549 | wasmtime_memory32_size as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:551:45 [INFO] [stderr] | [INFO] [stderr] 551 | wasmtime_imported_memory32_size as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 551 | wasmtime_imported_memory32_size as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:554:33 [INFO] [stderr] | [INFO] [stderr] 554 | wasmtime_table_copy as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 554 | wasmtime_table_copy as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:557:33 [INFO] [stderr] | [INFO] [stderr] 557 | wasmtime_table_init as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 557 | wasmtime_table_init as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:559:32 [INFO] [stderr] | [INFO] [stderr] 559 | wasmtime_elem_drop as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 559 | wasmtime_elem_drop as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:562:42 [INFO] [stderr] | [INFO] [stderr] 562 | wasmtime_defined_memory_copy as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 562 | wasmtime_defined_memory_copy as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:564:43 [INFO] [stderr] | [INFO] [stderr] 564 | wasmtime_imported_memory_copy as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 564 | wasmtime_imported_memory_copy as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:566:34 [INFO] [stderr] | [INFO] [stderr] 566 | wasmtime_memory_fill as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 566 | wasmtime_memory_fill as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:568:43 [INFO] [stderr] | [INFO] [stderr] 568 | wasmtime_imported_memory_fill as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 568 | wasmtime_imported_memory_fill as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:570:34 [INFO] [stderr] | [INFO] [stderr] 570 | wasmtime_memory_init as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 570 | wasmtime_memory_init as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: direct cast of function item into an integer [INFO] [stderr] --> src/vmcontext.rs:572:32 [INFO] [stderr] | [INFO] [stderr] 572 | wasmtime_data_drop as usize; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: first cast to a pointer `as *const ()` [INFO] [stderr] | [INFO] [stderr] 572 | wasmtime_data_drop as *const () as usize; [INFO] [stderr] | ++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: `substrate-wasmtime-runtime` (lib) generated 29 warnings (run `cargo fix --lib -p substrate-wasmtime-runtime` to apply 16 suggestions) [INFO] [stderr] warning: `substrate-wasmtime-runtime` (lib test) generated 29 warnings (29 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: cranelift-codegen-meta v0.63.0, wasmtime-environ v0.16.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/substrate_wasmtime_runtime-0fa6645b14c0ecfa) [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test mmap::tests::test_round_up_to_page_size ... ok [INFO] [stdout] test vmcontext::test_vmfunction_import::check_vmfunction_import_offsets ... ok [INFO] [stdout] test vmcontext::test_vminterrupts::check_vminterrupts_interrupted_offset ... ok [INFO] [stdout] test vmcontext::test_vmmemory_definition::check_vmmemory_definition_offsets ... ok [INFO] [stdout] test vmcontext::test_vmglobal_definition::check_vmglobal_begins_aligned ... ok [INFO] [stdout] test vmcontext::test_vm_invoke_argument::check_vm_invoke_argument_alignment ... ok [INFO] [stdout] test vmcontext::test_vmmemory_import::check_vmmemory_import_offsets ... ok [INFO] [stdout] test vmcontext::test_vm_invoke_argument::check_vmglobal_definition_offsets ... ok [INFO] [stdout] test vmcontext::test_vmglobal_definition::check_vmglobal_definition_offsets ... ok [INFO] [stdout] test vmcontext::test_vmglobal_import::check_vmglobal_import_offsets ... ok [INFO] [stdout] test vmcontext::test_vmglobal_definition::check_vmglobal_definition_alignment ... ok [INFO] [stdout] test vmcontext::test_vmshared_signature_index::check_target_shared_signature_index ... ok [INFO] [stdout] test vmcontext::test_vmtable_definition::check_vmtable_definition_offsets ... ok [INFO] [stdout] test vmcontext::test_vmtable_import::check_vmtable_import_offsets ... ok [INFO] [stdout] test vmcontext::test_vmshared_signature_index::check_vmshared_signature_index ... ok [INFO] [stdout] test vmcontext::test_vmfunction_body::check_vmfunction_body_offsets ... ok [INFO] [stdout] test vmcontext::test_vmcaller_checked_anyfunc::check_vmcaller_checked_anyfunc_offsets ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s [INFO] [stdout] [INFO] [stderr] Doc-tests substrate_wasmtime_runtime [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/libcalls.rs - libcalls (line 22) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3b02e59e2be83812aec5dfd7f9231ed310e44551dcfa010c528102db8e738aa2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3b02e59e2be83812aec5dfd7f9231ed310e44551dcfa010c528102db8e738aa2", kill_on_drop: false }` [INFO] [stdout] 3b02e59e2be83812aec5dfd7f9231ed310e44551dcfa010c528102db8e738aa2