[−][src]Module rustc_mir::transform::add_retag

This pass adds validation calls (AcquireValid, ReleaseValid) where appropriate. It has to be run really early, before transformations like inlining, because introducing these calls adds UB -- so, conceptually, this pass is actually part of MIR building, and only after this pass we think of the program has having the normal MIR semantics.

Structs

AddRetag

Functions

is_stable

Determines whether this place is "stable": Whether, if we evaluate it again after the assignment, we can be sure to obtain the same place value. (Concurrent accesses by other threads are no problem as these are anyway non-atomic copies. Data races are UB.)

may_be_reference

Determine whether this type may be a reference (or box), and thus needs retagging.