You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/undefined-behaviour.md
+4-5Lines changed: 4 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -20,14 +20,14 @@ Rust’s [definition of UB](https://doc.rust-lang.org/reference/behavior-conside
20
20
21
21
22
22
Given the lack of a formal semantics for UB, and given Kani's focus on memory safety, there are classes of UB which Kani does not detect.
23
-
A non-exhaustive list of these, based on the the non-exhaustive list from the [Rust documentation](https://doc.rust-lang.org/reference/behavior-considered-undefined.html), is:
23
+
A non-exhaustive list of these, based on the non-exhaustive list from the [Rust documentation](https://doc.rust-lang.org/reference/behavior-considered-undefined.html), is:
24
24
25
25
* Data races.
26
26
* Kani focuses on sequential code.
27
27
* Breaking the pointer aliasing rules (http://llvm.org/docs/LangRef.html#pointer-aliasing-rules).
28
-
* Kani can detect if misuse of pointers causes memory safety or assertion violations, but does not not track reference lifetimes.
28
+
* Kani can detect if misuse of pointers causes memory safety or assertion violations, but does not track reference lifetimes.
29
29
* Mutating immutable data.
30
-
* Kani can detect if modification of immutable data causes memory safety or assertion violations, but does not not track reference lifetimes.
30
+
* Kani can detect if modification of immutable data causes memory safety or assertion violations, but does not track reference lifetimes.
31
31
* Invoking undefined behavior via compiler intrinsics.
32
32
* Kani makes a best effort attempt to check the preconditions of compiler intrinsics, but does not guarantee to do so in all cases.
33
33
* Executing code compiled with platform features that the current platform does not support (see [target_feature](https://doc.rust-lang.org/reference/attributes/codegen.html#the-target_feature-attribute)).
@@ -44,6 +44,5 @@ Kani makes a best-effort attempt to detect some cases of UB:
44
44
* Kani can detect invalid dereferences, but may not detect them in [place expression context](https://doc.rust-lang.org/reference/expressions.html#place-expressions-and-value-expressions).
45
45
* Invoking undefined behavior via compiler intrinsics.
46
46
* See [current support for compiler intrinsics](./rust-feature-support/intrinsics.md).
47
-
* Producing an invalid value, even in private fields and locals.
47
+
* Producing an invalid value, even in private fields and locals.
48
48
* Kani provides a [mechanism](./tutorial-nondeterministic-variables.md#safe-nondeterministic-variables-for-custom-types)`is_valid()` which users can use to check validity of objects, but it does not currently apply to all types.
0 commit comments