summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Mips.cpp2
-rw-r--r--lld/test/ELF/mips-no-objects.s5
2 files changed, 7 insertions, 0 deletions
diff --git a/lld/ELF/Mips.cpp b/lld/ELF/Mips.cpp
index 23adb535688..2e7753cc385 100644
--- a/lld/ELF/Mips.cpp
+++ b/lld/ELF/Mips.cpp
@@ -285,6 +285,8 @@ template <class ELFT> uint32_t elf::getMipsEFlags() {
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);
}
diff --git a/lld/test/ELF/mips-no-objects.s b/lld/test/ELF/mips-no-objects.s
new file mode 100644
index 00000000000..444477ea720
--- /dev/null
+++ b/lld/test/ELF/mips-no-objects.s
@@ -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
OpenPOWER on IntegriCloud