generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 129
Open
Labels
[C] BugThis is a bug. Something isn't working.This is a bug. Something isn't working.
Description
I tried this code:
// dup.rs
use std::hint::black_box;
#[kani::proof]
fn check_division() {
black_box(kani::any::<u8>() / kani::any::<u8>());
}
using the following command line invocation:
kani dup.rs
with Kani version: #2551
I expected to see this happen: There should be one division by zero check and one overflow check, and both fail.
Instead, this happened: For the same division, Kani reports 3 different checks of division by zero and 2 overflow checks.
RESULTS:
Check 1: check_division.assertion.1
- Status: FAILURE
- Description: "attempt to divide by zero"
- Location: operations.rs:11:15 in function check_division
Check 2: check_division.assertion.2
- Status: FAILURE
- Description: "attempt to divide with overflow"
- Location: operations.rs:11:15 in function check_division
Check 3: check_division.arithmetic_overflow.1
- Status: SUCCESS
- Description: "attempt to divide with overflow"
- Location: operations.rs:11:15 in function check_division
Check 4: check_division.arithmetic_overflow.2
- Status: SUCCESS
- Description: "attempt to divide by zero"
- Location: operations.rs:11:15 in function check_division
Check 5: check_division.division-by-zero.1
- Status: SUCCESS
- Description: "division by zero"
- Location: operations.rs:11:15 in function check_division
Note: Before the upgrade (#2551), the test above would generate 3 checks. One for overflow and 2 for division by zero.
Metadata
Metadata
Assignees
Labels
[C] BugThis is a bug. Something isn't working.This is a bug. Something isn't working.