Adjust PropertyClass of assertions to identify UB#3860
Adjust PropertyClass of assertions to identify UB#3860tautschnig merged 14 commits intomodel-checking:mainfrom
Conversation
Anything listed as undefined behavior (UB) at https://doc.rust-lang.org/reference/behavior-considered-undefined.html must also be considered UB by Kani and should not pass under `should_fail`. In preparation of this PR, all occurrences of `PropertyClass` in the code base were audited and, where necessary, adjusted. Also, all uses of `kani::assert` were audited to confirm or adjust them. This resulted in first-time use of the `UnsupportedCheck` hook, which implied fixes to its implementation. Resolves: model-checking#3571
celinval
left a comment
There was a problem hiding this comment.
What about value validity, memory initialization? I think they are all still using assertions.
celinval
left a comment
There was a problem hiding this comment.
sorry, wrong selection... 😳
Given how those were designed, is the only way to fix this to filter for their specific messages? My understanding is that those insert MIR-level assert calls, making them indistinguishable from user-provided assertions. Am I getting this wrong? |
Can we insert calls to I think we can just swap this code to retrieve By looking at this code, it reminded me that we also have an internal function named |
carolynzech
left a comment
There was a problem hiding this comment.
LGTM modulo these nits. Thanks!
tests/expected/uninit/access-padding-uninit/access-padding-enum-diverging-variants.expected
Outdated
Show resolved
Hide resolved
tests/expected/uninit/access-padding-uninit/access-padding-enum-single-variant.expected
Outdated
Show resolved
Hide resolved
tests/expected/uninit/access-padding-uninit/access-padding-enum-single-field.expected
Outdated
Show resolved
Hide resolved
tests/expected/uninit/access-padding-uninit/access-padding-enum-multiple-variants.expected
Outdated
Show resolved
Hide resolved
tests/expected/uninit/access-padding-uninit/access-padding-enum-multiple-variants.expected
Outdated
Show resolved
Hide resolved
Co-authored-by: Carolyn Zech <cmzech@amazon.com>
Overridden by Carolyn's review per out-of-band communication.
ac8e0b9
## What's Changed * Automatic cargo update to 2025-02-10 by @github-actions in #3880 * Bump tests/perf/s2n-quic from `82dd0b5` to `a5d8422` by @dependabot in #3882 * Fast fail feature - Stops verification process as soon as one failure is observed - Use case : CI speed up by @rajath-mk in #3879 * Autoharness Subcommand by @carolynzech in #3874 * Upgrade toolchain to 2/10 by @carolynzech in #3883 * Add loop-contracts doc to SUMMARY by @qinheping in #3886 * Support concrete playback for arrays of length 65 or greater by @carolynzech in #3888 * Automatic cargo update to 2025-02-17 by @github-actions in #3889 * Bump tests/perf/s2n-quic from `a5d8422` to `00e3371` by @dependabot in #3894 * Adjust PropertyClass of assertions to identify UB by @tautschnig in #3860 * Fix: regression test from #3888 has version control change by @carolynzech in #3892 * Upgrade toolchain to 2025-02-11 by @thanhnguyen-aws in #3887 * Remove isize overflow check for zst offsets by @carolynzech in #3897 * Automatic toolchain upgrade to nightly-2025-02-12 by @github-actions in #3898 * Upgrade the toolchain to 2025-02-21 by @zhassan-aws in #3899 * Automatic cargo update to 2025-02-24 by @github-actions in #3901 * Bump ncipollo/release-action from 1.15.0 to 1.16.0 by @dependabot in #3902 * Bump tests/perf/s2n-quic from `00e3371` to `cfb314b` by @dependabot in #3903 * Convert raw URL to link by @flba-eb in #3907 * Automatic cargo update to 2025-03-03 by @github-actions in #3913 * Install toolchain with rustup >= 1.28.0 by @tautschnig in #3917 * Bump tests/perf/s2n-quic from `cfb314b` to `d88faa4` by @dependabot in #3916 * Remove Ubuntu 20.04 CI usage by @tautschnig in #3918 * Move standard-library metrics script to verify-rust-std repo by @tautschnig in #3914 * scanner: Fix loop stats in overall function stats summary by @tautschnig in #3915 * Update toolchain to 2025-03-02 by @remi-delmas-3000 in #3911 ## New Contributors * @flba-eb made their first contribution in #3907 **Full Changelog**: kani-0.59.0...kani-0.60.0 --------- Co-authored-by: Carolyn Zech <cmzech@amazon.com>
Anything listed as undefined behavior (UB) at
https://doc.rust-lang.org/reference/behavior-considered-undefined.html must also be considered UB by Kani and should not pass under
should_fail. In preparation of this PR, all occurrences ofPropertyClassin the code base were audited and, where necessary, adjusted.Also, all uses of
kani::assertwere audited to confirm or adjust them. This resulted in first-time use of theUnsupportedCheckhook, which implied fixes to its implementation.Resolves: #3571
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.