File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change 2626* Evaluating a [ dereference expression] (` *expr ` ) on a raw pointer that is
2727 [ dangling] or unaligned, even in [ place expression context]
2828 (e.g. ` addr_of!(&*expr) ` ).
29- * Breaking the [ pointer aliasing rules] . ` &mut T ` and ` &T ` follow LLVM’s scoped
30- [ noalias] model, except if the ` &T ` contains an [ ` UnsafeCell<U> ` ] .
29+ * Breaking the [ pointer aliasing rules] . ` Box<T> ` , ` &mut T ` and ` &T ` follow LLVM’s
30+ scoped noalias model, except if the ` &T ` contains an [ ` UnsafeCell<U> ` ] .
31+ References must not be dangling while they are live. (The exact liveness
32+ duration is not specified, but it is certainly upper-bounded by the syntactic
33+ lifetime assigned by the borrow checker. When a reference is passed to a
34+ function, it is live at least as long as that function call, again except if
35+ the ` &T ` contains an [ ` UnsafeCell<U> ` ] .) All this also applies when values of
36+ these types are passed in a (nested) field of a compound type, but not behind
37+ pointer indirections.
3138* Mutating immutable data. All data inside a [ ` const ` ] item is immutable. Moreover, all
3239 data reached through a shared reference or data owned by an immutable binding
3340 is immutable, unless that data is contained within an [ ` UnsafeCell<U> ` ] .
You can’t perform that action at this time.
0 commit comments