Skip to content

Compilation fails with errors in ring #4119

@acoglio

Description

@acoglio

When I run cargo kani in (any of) the top-level directories of the open-source repositories

https://github.com/ProvableHQ/snarkVM
https://github.com/ProvableHQ/snarkOS

I get errors in the ring crate (similar to the ones reported in #3109):

error[E0080]: evaluation of constant value failed
  --> /Users/ac/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/src/cpu/arm/darwin.rs:44:5
   |
44 |     assert!((CAPS_STATIC & MIN_STATIC_FEATURES) == MIN_STATIC_FEATURES);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation panicked: assertion failed: (CAPS_STATIC & MIN_STATIC_FEATURES) == MIN_STATIC_FEATURES

error[E0080]: evaluation of constant value failed
  --> /Users/ac/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/src/cpu/arm/darwin.rs:51:5
   |
51 |     assert!(CAPS_STATIC == MIN_STATIC_FEATURES);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation panicked: assertion failed: CAPS_STATIC == MIN_STATIC_FEATURES

error[E0080]: evaluation of constant value failed
  --> /Users/ac/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/src/cpu/arm/darwin.rs:78:39
   |
78 |     const _ASSERT_NEON_DETECTED: () = assert!((CAPS_STATIC & Neon::mask()) == Neon::mask());
   |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ evaluation panicked: assertion failed: (CAPS_STATIC & Neon::mask()) == Neon::mask()

error[E0080]: evaluation of constant value failed
   --> /Users/ac/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.17.14/src/cpu/arm.rs:189:31
    |
189 |   const _AARCH64_HAS_NEON: () = assert!(
    |  _______________________________^
190 | |     ((CAPS_STATIC & Neon::mask()) == Neon::mask())
191 | |         || !cfg!(all(target_arch = "aarch64", target_endian = "little"))
192 | | );
    | |_^ evaluation panicked: assertion failed: ((CAPS_STATIC & Neon::mask()) == Neon::mask()) ||
    !cfg!(all(target_arch = "aarch64", target_endian = "little"))

There are no Kani annotations yet in those two repositories, but when I run cargo kani in smaller projects without Kani annotations I don't get a failure.

Metadata

Metadata

Assignees

Labels

T-UserTag user issues / requests[C] BugThis is a bug. Something isn't working.[F] Spurious FailureIssues that cause Kani verification to fail despite the code being correct.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions