mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Move the STT_FILE symbols out of the normal symbol table processing for
ELF. They can overlap with the other symbols, e.g. if a source file "foo.c" contains a function "foo" with a static variable "c". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193569 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -36,8 +36,8 @@ unsigned MCELF::GetBinding(const MCSymbolData &SD) {
|
||||
void MCELF::SetType(MCSymbolData &SD, unsigned Type) {
|
||||
assert(Type == ELF::STT_NOTYPE || Type == ELF::STT_OBJECT ||
|
||||
Type == ELF::STT_FUNC || Type == ELF::STT_SECTION ||
|
||||
Type == ELF::STT_FILE || Type == ELF::STT_COMMON ||
|
||||
Type == ELF::STT_TLS || Type == ELF::STT_GNU_IFUNC);
|
||||
Type == ELF::STT_COMMON || Type == ELF::STT_TLS ||
|
||||
Type == ELF::STT_GNU_IFUNC);
|
||||
|
||||
uint32_t OtherFlags = SD.getFlags() & ~(0xf << ELF_STT_Shift);
|
||||
SD.setFlags(OtherFlags | (Type << ELF_STT_Shift));
|
||||
@@ -47,8 +47,7 @@ unsigned MCELF::GetType(const MCSymbolData &SD) {
|
||||
uint32_t Type = (SD.getFlags() & (0xf << ELF_STT_Shift)) >> ELF_STT_Shift;
|
||||
assert(Type == ELF::STT_NOTYPE || Type == ELF::STT_OBJECT ||
|
||||
Type == ELF::STT_FUNC || Type == ELF::STT_SECTION ||
|
||||
Type == ELF::STT_FILE || Type == ELF::STT_COMMON ||
|
||||
Type == ELF::STT_TLS || Type == ELF::STT_GNU_IFUNC);
|
||||
Type == ELF::STT_COMMON || Type == ELF::STT_TLS || Type == ELF::STT_GNU_IFUNC);
|
||||
return Type;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user