[lld] r283226 - [ELF] - Do not crash on MIPS if there is no object files in input.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 4 08:19:21 PDT 2016
Author: grimar
Date: Tue Oct 4 10:19:20 2016
New Revision: 283226
URL: http://llvm.org/viewvc/llvm-project?rev=283226&view=rev
Log:
[ELF] - Do not crash on MIPS if there is no object files in input.
If we have input without object files, for example if we have only .so
code crashes in checkFlags(), getPicFlags(), getArchFlags() functions.
Patch fixes the issue.
Differential revision: https://reviews.llvm.org/D25237
Added:
lld/trunk/test/ELF/mips-no-objects.s
Modified:
lld/trunk/ELF/Mips.cpp
Modified: lld/trunk/ELF/Mips.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Mips.cpp?rev=283226&r1=283225&r2=283226&view=diff
==============================================================================
--- lld/trunk/ELF/Mips.cpp (original)
+++ lld/trunk/ELF/Mips.cpp Tue Oct 4 10:19:20 2016
@@ -285,6 +285,8 @@ template <class ELFT> uint32_t elf::getM
std::vector<FileFlags> V;
for (elf::ObjectFile<ELFT> *F : Symtab<ELFT>::X->getObjectFiles())
V.push_back({F->getName(), F->getObj().getHeader()->e_flags});
+ if (V.empty())
+ return 0;
checkFlags(V);
return getMiscFlags(V) | getPicFlags(V) | getArchFlags(V);
}
Added: lld/trunk/test/ELF/mips-no-objects.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-no-objects.s?rev=283226&view=auto
==============================================================================
--- lld/trunk/test/ELF/mips-no-objects.s (added)
+++ lld/trunk/test/ELF/mips-no-objects.s Tue Oct 4 10:19:20 2016
@@ -0,0 +1,5 @@
+# REQUIRES: mips
+# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
+# RUN: ld.lld %t.o -shared -o %t.so
+# RUN: ld.lld %t.so -shared -o %t2.so
+# RUN: llvm-readobj %t2.so > /dev/null 2>&1
More information about the llvm-commits
mailing list