Skip to content

Commit db1fac7

Browse files
committed
Zero Sized Types: stop saying that "dereferencing" a non-ZST is UB
From discussion at https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/What.20operations.20are.20allowed.20on.20ZST.20null.20pointers.3F - applying the dereference operator to a null pointer stopped being UB a few months ago - it's better to be explicit about whether we're talking about loads and stores or about applying the dereference operator I think we don't need to mention field projections here.
1 parent 2d896fa commit db1fac7

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/exotic-sizes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ consequence of types with no size. In particular, pointer offsets are no-ops,
106106
and allocators typically [require a non-zero size][alloc].
107107

108108
Note that references to ZSTs (including empty slices), just like all other
109-
references, must be non-null and suitably aligned. However, dereferencing a
110-
null pointer to a ZST is not [undefined behavior][ub], unlike pointers to
111-
other types.
109+
references, must be non-null and suitably aligned. However, loading or storing
110+
through a null pointer to a ZST is not [undefined behavior][ub], unlike
111+
pointers to other types.
112112

113113
[alloc]: ../std/alloc/trait.GlobalAlloc.html#tymethod.alloc
114114
[ub]: what-unsafe-does.html

0 commit comments

Comments
 (0)