Line 991... |
Line 991... |
bool is_forced_local_ : 1;
|
bool is_forced_local_ : 1;
|
// True if the field u_.from_object.shndx is an ordinary section
|
// True if the field u_.from_object.shndx is an ordinary section
|
// index, not one of the special codes from SHN_LORESERVE to
|
// index, not one of the special codes from SHN_LORESERVE to
|
// SHN_HIRESERVE (bit 29).
|
// SHN_HIRESERVE (bit 29).
|
bool is_ordinary_shndx_ : 1;
|
bool is_ordinary_shndx_ : 1;
|
// True if we've seen this symbol in a real ELF object (bit 30).
|
// True if we've seen this symbol in a "real" ELF object (bit 30).
|
|
// If the symbol has been seen in a relocatable, non-IR, object file,
|
|
// it's known to be referenced from outside the IR. A reference from
|
|
// a dynamic object doesn't count as a "real" ELF, and we'll simply
|
|
// mark the symbol as "visible" from outside the IR. The compiler
|
|
// can use this distinction to guide its handling of COMDAT symbols.
|
bool in_real_elf_ : 1;
|
bool in_real_elf_ : 1;
|
// True if this symbol is defined in a section which was discarded
|
// True if this symbol is defined in a section which was discarded
|
// (bit 31).
|
// (bit 31).
|
bool is_defined_in_discarded_section_ : 1;
|
bool is_defined_in_discarded_section_ : 1;
|
// True if UNDEF_BINDING_WEAK_ has been set (bit 32).
|
// True if UNDEF_BINDING_WEAK_ has been set (bit 32).
|
Line 1306... |
Line 1311... |
|
|
// During garbage collection, this keeps undefined symbols.
|
// During garbage collection, this keeps undefined symbols.
|
void
|
void
|
gc_mark_undef_symbols(Layout*);
|
gc_mark_undef_symbols(Layout*);
|
|
|
// During garbage collection, this ensures externally visible symbols
|
// This tells garbage collection that this symbol is referenced.
|
// are not treated as garbage while building shared objects.
|
|
void
|
void
|
gc_mark_symbol_for_shlib(Symbol* sym);
|
gc_mark_symbol(Symbol* sym);
|
|
|
// During garbage collection, this keeps sections that correspond to
|
// During garbage collection, this keeps sections that correspond to
|
// symbols seen in dynamic objects.
|
// symbols seen in dynamic objects.
|
inline void
|
inline void
|
gc_mark_dyn_syms(Symbol* sym);
|
gc_mark_dyn_syms(Symbol* sym);
|