File tree Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -1153,7 +1153,7 @@ exposing an API making it possible for it to occur in safe code.
1153
1153
1154
1154
* Data races
1155
1155
* Dereferencing a null/dangling raw pointer
1156
- * Mutating an immutable value/reference
1156
+ * Mutating an immutable value/reference without ` UnsafeCell `
1157
1157
* Reads of [ undef] ( http://llvm.org/docs/LangRef.html#undefined-values )
1158
1158
(uninitialized) memory
1159
1159
* Breaking the [ pointer aliasing
@@ -1166,11 +1166,14 @@ exposing an API making it possible for it to occur in safe code.
1166
1166
* Using ` std::ptr::copy_nonoverlapping_memory ` (` memcpy32 ` /` memcpy64 `
1167
1167
instrinsics) on overlapping buffers
1168
1168
* Invalid values in primitive types, even in private fields/locals:
1169
- * Dangling/null pointers in non-raw pointers, or slices
1169
+ * Dangling/null references or boxes
1170
1170
* A value other than ` false ` (0) or ` true ` (1) in a ` bool `
1171
1171
* A discriminant in an ` enum ` not included in the type definition
1172
1172
* A value in a ` char ` which is a surrogate or above ` char::MAX `
1173
1173
* non-UTF-8 byte sequences in a ` str `
1174
+ * Unwinding into Rust from foreign code or unwinding from Rust into foreign
1175
+ code. Rust's failure system is not compatible with exception handling in
1176
+ other languages. Unwinding must be caught and handled at FFI boundaries.
1174
1177
1175
1178
##### Behaviour not considered unsafe
1176
1179
You can’t perform that action at this time.
0 commit comments