diff options
-rw-r--r-- | lld/ELF/InputFiles.cpp | 2 | ||||
-rw-r--r-- | lld/test/elf2/Inputs/no-symtab.o | bin | 0 -> 416 bytes | |||
-rw-r--r-- | lld/test/elf2/no-symtab.s | 4 |
3 files changed, 6 insertions, 0 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index 64f688e1a96..7e3e1bbbb8a 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -78,6 +78,8 @@ ELFData<ELFT>::getSymbolsHelper(bool Local) { } template <class ELFT> void ELFData<ELFT>::initStringTable() { + if (!Symtab) + return; ErrorOr<StringRef> StringTableOrErr = ELFObj.getStringTableForSymtab(*Symtab); error(StringTableOrErr.getError()); StringTable = *StringTableOrErr; diff --git a/lld/test/elf2/Inputs/no-symtab.o b/lld/test/elf2/Inputs/no-symtab.o Binary files differnew file mode 100644 index 00000000000..7368ba280d7 --- /dev/null +++ b/lld/test/elf2/Inputs/no-symtab.o diff --git a/lld/test/elf2/no-symtab.s b/lld/test/elf2/no-symtab.s new file mode 100644 index 00000000000..47a5f0ad618 --- /dev/null +++ b/lld/test/elf2/no-symtab.s @@ -0,0 +1,4 @@ +// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o +// RUN: lld -flavor gnu2 %t.o %p/Inputs/no-symtab.o -o %t +.global _start +_start: |