Enum flowistry_pdg::rustc::mir::interpret::GlobalAlloc
source · pub enum GlobalAlloc<'tcx> {
Function(Instance<'tcx>),
VTable(Ty<'tcx>, Option<Binder<'tcx, ExistentialTraitRef<'tcx>>>),
Static(DefId),
Memory(ConstAllocation<'tcx>),
}
Expand description
An allocation in the global (tcx-managed) memory can be either a function pointer, a static, or a “real” allocation with some data in it.
Variants§
Function(Instance<'tcx>)
The alloc ID is used as a function pointer.
VTable(Ty<'tcx>, Option<Binder<'tcx, ExistentialTraitRef<'tcx>>>)
This alloc ID points to a symbolic (not-reified) vtable.
Static(DefId)
The alloc ID points to a “lazy” static variable that did not get computed (yet). This is also used to break the cycle in recursive statics.
Memory(ConstAllocation<'tcx>)
The alloc ID points to memory.
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for GlobalAlloc<'tcx>
impl<'tcx> !Send for GlobalAlloc<'tcx>
impl<'tcx> !Sync for GlobalAlloc<'tcx>
impl<'tcx> Unpin for GlobalAlloc<'tcx>
impl<'tcx> !UnwindSafe for GlobalAlloc<'tcx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more