Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/include/llvm/Object/ELFObjectFile.h
Show First 20 Lines • Show All 934 Lines • ▼ Show 20 Lines | if (!SectionsOrErr) | ||||
return SectionsOrErr.takeError(); | return SectionsOrErr.takeError(); | ||||
const Elf_Shdr *DotDynSymSec = nullptr; | const Elf_Shdr *DotDynSymSec = nullptr; | ||||
const Elf_Shdr *DotSymtabSec = nullptr; | const Elf_Shdr *DotSymtabSec = nullptr; | ||||
ArrayRef<Elf_Word> ShndxTable; | ArrayRef<Elf_Word> ShndxTable; | ||||
for (const Elf_Shdr &Sec : *SectionsOrErr) { | for (const Elf_Shdr &Sec : *SectionsOrErr) { | ||||
switch (Sec.sh_type) { | switch (Sec.sh_type) { | ||||
case ELF::SHT_DYNSYM: { | case ELF::SHT_DYNSYM: { | ||||
if (DotDynSymSec) | if (!DotDynSymSec) | ||||
return createError("More than one dynamic symbol table!"); | |||||
DotDynSymSec = &Sec; | DotDynSymSec = &Sec; | ||||
break; | break; | ||||
} | } | ||||
case ELF::SHT_SYMTAB: { | case ELF::SHT_SYMTAB: { | ||||
if (DotSymtabSec) | if (!DotSymtabSec) | ||||
jhenderson: What about this case? | |||||
return createError("More than one static symbol table!"); | |||||
DotSymtabSec = &Sec; | DotSymtabSec = &Sec; | ||||
break; | break; | ||||
} | } | ||||
case ELF::SHT_SYMTAB_SHNDX: { | case ELF::SHT_SYMTAB_SHNDX: { | ||||
auto TableOrErr = EF.getSHNDXTable(Sec); | auto TableOrErr = EF.getSHNDXTable(Sec); | ||||
if (!TableOrErr) | if (!TableOrErr) | ||||
return TableOrErr.takeError(); | return TableOrErr.takeError(); | ||||
ShndxTable = *TableOrErr; | ShndxTable = *TableOrErr; | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 234 Lines • Show Last 20 Lines |
What about this case?