Changeset View
Changeset View
Standalone View
Standalone View
contrib/llvm/tools/lld/ELF/Symbols.h
Show First 20 Lines • Show All 176 Lines • ▼ Show 20 Lines | public: | ||||
uint64_t getSize() const; | uint64_t getSize() const; | ||||
OutputSection *getOutputSection() const; | OutputSection *getOutputSection() const; | ||||
protected: | protected: | ||||
Symbol(Kind K, InputFile *File, StringRefZ Name, uint8_t Binding, | Symbol(Kind K, InputFile *File, StringRefZ Name, uint8_t Binding, | ||||
uint8_t StOther, uint8_t Type) | uint8_t StOther, uint8_t Type) | ||||
: File(File), NameData(Name.Data), NameSize(Name.Size), Binding(Binding), | : File(File), NameData(Name.Data), NameSize(Name.Size), Binding(Binding), | ||||
Type(Type), StOther(StOther), SymbolKind(K), NeedsPltAddr(false), | Type(Type), StOther(StOther), SymbolKind(K), NeedsPltAddr(false), | ||||
IsInIplt(false), IsInIgot(false), IsPreemptible(false), | IsInIplt(false), GotInIgot(false), IsPreemptible(false), | ||||
Used(!Config->GcSections), NeedsTocRestore(false), | Used(!Config->GcSections), NeedsTocRestore(false), | ||||
ScriptDefined(false) {} | ScriptDefined(false) {} | ||||
public: | public: | ||||
// True the symbol should point to its PLT entry. | // True the symbol should point to its PLT entry. | ||||
// For SharedSymbol only. | // For SharedSymbol only. | ||||
unsigned NeedsPltAddr : 1; | unsigned NeedsPltAddr : 1; | ||||
// True if this symbol is in the Iplt sub-section of the Plt. | // True if this symbol is in the Iplt sub-section of the Plt and the Igot | ||||
// sub-section of the .got.plt or .got. | |||||
unsigned IsInIplt : 1; | unsigned IsInIplt : 1; | ||||
// True if this symbol is in the Igot sub-section of the .got.plt or .got. | // True if this symbol needs a GOT entry and its GOT entry is actually in | ||||
unsigned IsInIgot : 1; | // Igot. This will be true only for certain non-preemptible ifuncs. | ||||
unsigned GotInIgot : 1; | |||||
// True if this symbol is preemptible at load time. | // True if this symbol is preemptible at load time. | ||||
unsigned IsPreemptible : 1; | unsigned IsPreemptible : 1; | ||||
// True if an undefined or shared symbol is used from a live section. | // True if an undefined or shared symbol is used from a live section. | ||||
unsigned Used : 1; | unsigned Used : 1; | ||||
// True if a call to this symbol needs to be followed by a restore of the | // True if a call to this symbol needs to be followed by a restore of the | ||||
▲ Show 20 Lines • Show All 213 Lines • Show Last 20 Lines |