33 ELF_IsSignature_Shift = 10,
36 ELF_WeakrefUsedInReloc_Shift = 11,
39 ELF_BindingSet_Shift = 12
62 uint32_t OtherFlags =
getFlags() & ~(0x3 << ELF_STB_Shift);
63 setFlags(OtherFlags | (Val << ELF_STB_Shift));
68 uint32_t Val = (
getFlags() & (0x3 << ELF_STB_Shift)) >> ELF_STB_Shift;
121 uint32_t OtherFlags =
getFlags() & ~(0x7 << ELF_STT_Shift);
122 setFlags(OtherFlags | (Val << ELF_STT_Shift));
126 uint32_t Val = (
getFlags() & (0x7 << ELF_STT_Shift)) >> ELF_STT_Shift;
151 uint32_t OtherFlags =
getFlags() & ~(0x3 << ELF_STV_Shift);
152 setFlags(OtherFlags | (Visibility << ELF_STV_Shift));
163 assert((Other & 0x1f) == 0);
165 assert(Other <= 0x7);
166 uint32_t OtherFlags =
getFlags() & ~(0x7 << ELF_STO_Shift);
167 setFlags(OtherFlags | (Other << ELF_STO_Shift));
171 unsigned Other = (
getFlags() & (0x7 << ELF_STO_Shift)) >> ELF_STO_Shift;
176 uint32_t OtherFlags =
getFlags() & ~(0x1 << ELF_WeakrefUsedInReloc_Shift);
177 setFlags(OtherFlags | (1 << ELF_WeakrefUsedInReloc_Shift));
181 return getFlags() & (0x1 << ELF_WeakrefUsedInReloc_Shift);
185 uint32_t OtherFlags =
getFlags() & ~(0x1 << ELF_IsSignature_Shift);
186 setFlags(OtherFlags | (1 << ELF_IsSignature_Shift));
190 return getFlags() & (0x1 << ELF_IsSignature_Shift);
193 void MCSymbolELF::setIsBindingSet()
const {
194 uint32_t OtherFlags =
getFlags() & ~(0x1 << ELF_BindingSet_Shift);
195 setFlags(OtherFlags | (1 << ELF_BindingSet_Shift));
199 return getFlags() & (0x1 << ELF_BindingSet_Shift);
bool isBindingSet() const
void setVisibility(unsigned Visibility)
ELFYAML::ELF_STV Visibility
void setType(unsigned Type) const
void setFlags(uint32_t Value) const
Set the (implementation defined) symbol flags.
void setIsSignature() const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
unsigned getVisibility() const
uint32_t getFlags() const
Get the (implementation defined) symbol flags.
The instances of the Type class are immutable: once they are created, they are never changed...
void setOther(unsigned Other)
unsigned getOther() const
unsigned getBinding() const
bool isDefined() const
isDefined - Check if this symbol is defined (i.e., it has an address).
bool isUsedInReloc() const
bool isWeakrefUsedInReloc() const
void setIsWeakrefUsedInReloc() const
void setBinding(unsigned Binding) const