pub struct Elsewhere { /* private fields */ }Expand description
The names whose address only the linker knows.
Functions and not objects, which is not an oversight. The address of a static or of anything
this file defines is in this file, so there is a distance and no table is needed. The address of
an object another file defines is also reachable that way in an executable, because the linker
answers a reference to one by making room for it in this program and copying it there, so the
name really does end up somewhere this file can measure to. A function cannot be copied: it has
exactly one address that every object in the program has to agree on, or two pointers to it
compare unequal, so the one address is what the table holds and what everything reads.
A name this module has never heard of is not in here. Nothing the front end writes produces one, and treating an unknown name as a function would put the addresses the instrumentation takes of its own tables through a table of their own for no reason.
Implementations§
Trait Implementations§
impl Eq for Elsewhere
Source§impl FromIterator<Symbol> for Elsewhere
The same set, written out by hand.
impl FromIterator<Symbol> for Elsewhere
The same set, written out by hand.
Elsewhere::of is how the driver builds one and is the only way a compilation does. This is
for a test that wants to lower one function and say what is outside the file without building a
module for it to be outside of.