diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2013-10-29 01:06:17 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2013-10-29 01:06:17 +0000 |
commit | fc184734009df551eb36e80396875cc9a2ec4acf (patch) | |
tree | 1243a1f280d31e97aadc96ab2a083a8b76639eda /llvm/lib/MC/MCELF.cpp | |
parent | 4a841a86bd8ad8f9af8320bcbb1beeedb5c443c1 (diff) | |
download | bcm5719-llvm-fc184734009df551eb36e80396875cc9a2ec4acf.tar.gz bcm5719-llvm-fc184734009df551eb36e80396875cc9a2ec4acf.zip |
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".
llvm-svn: 193569
Diffstat (limited to 'llvm/lib/MC/MCELF.cpp')
-rw-r--r-- | llvm/lib/MC/MCELF.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/MC/MCELF.cpp b/llvm/lib/MC/MCELF.cpp index 560cdbc6aba..ebb189e5439 100644 --- a/llvm/lib/MC/MCELF.cpp +++ b/llvm/lib/MC/MCELF.cpp @@ -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; } |