pub struct Escapes { /* private fields */ }Expand description
Which of a function’s locals had their address leave it.
Section 8.4 calls this the most valuable interprocedural-flavoured fact available without interprocedural analysis, because it covers every local a C programmer takes the address of only to pass one field of, and because a local whose address never escaped cannot be touched by any call at all.
Section 8.6 says how it goes wrong, which is by missing an escape, and what to do about it.
keeps_address is a whitelist: an opcode it does not name lets the address out, and so
does an opcode added to the IR after this was written. A blacklist would mean the next person
to add an opcode introduces a miscompilation without touching this file.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Escapes
impl RefUnwindSafe for Escapes
impl Send for Escapes
impl Sync for Escapes
impl Unpin for Escapes
impl UnsafeUnpin for Escapes
impl UnwindSafe for Escapes
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