[Object/ELF] Don't confuse isDefined() and isCommon.

Reported by Rafael Espindola. Pointy-hat to me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239241 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Davide Italiano 2015-06-07 02:45:19 +00:00
parent 4514db2bfb
commit 14c78fb9b1

View File

@ -180,14 +180,11 @@ struct Elf_Sym_Impl : Elf_Sym_Base<ELFT> {
bool isAbsolute() const { return st_shndx == ELF::SHN_ABS; }
bool isCommon() const {
return !isUndefined() &&
!(st_shndx >= ELF::SHN_LORESERVE && st_shndx < ELF::SHN_ABS);
return getType() == ELF::STT_COMMON || st_shndx == ELF::SHN_COMMON;
}
bool isDefined() const {
return !isUndefined() &&
(!(st_shndx >= ELF::SHN_LORESERVE &&
st_shndx <= ELF::SHN_HIRESERVE) ||
st_shndx == ELF::SHN_XINDEX);
!(st_shndx >= ELF::SHN_LORESERVE && st_shndx < ELF::SHN_ABS);
}
bool isProcessorSpecific() const {
return st_shndx >= ELF::SHN_LOPROC && st_shndx <= ELF::SHN_HIPROC;