diff options
| -rw-r--r-- | lld/ELF/Mips.cpp | 2 | ||||
| -rw-r--r-- | lld/test/ELF/mips-no-objects.s | 5 |
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 |

