| 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);
 |