Annex F (informative) Core undefined behavior [ub]

F.3 [expr]: Expressions [ub.expr]

F.3.34[ub:expr.assign.overlap]
Specified in: [expr.assign]

Overlap in the storage between the source and destination can result in undefined behavior.
[Example 1: int x = 1; char* c = reinterpret_cast<char*>(&x); x = *c; // undefined behavior, source overlaps storage of destination — end example]