diff options
| -rw-r--r-- | lld/ELF/InputFiles.cpp | 2 | ||||
| -rw-r--r-- | lld/test/ELF/lto/Inputs/start-lib1.ll | 8 | ||||
| -rw-r--r-- | lld/test/ELF/lto/Inputs/start-lib2.ll (renamed from lld/test/ELF/lto/Inputs/start-lib.ll) | 2 | ||||
| -rw-r--r-- | lld/test/ELF/lto/start-lib.ll | 22 |
4 files changed, 25 insertions, 9 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index b8681e5581f..daff7cf304a 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -609,7 +609,7 @@ std::vector<StringRef> LazyObjectFile::getBitcodeSymbols() { for (const BasicSymbolRef &Sym : Obj->symbols()) { if (BitcodeFile::shouldSkip(Sym)) continue; - if (Sym.getFlags() == BasicSymbolRef::SF_Undefined) + if (Sym.getFlags() & BasicSymbolRef::SF_Undefined) continue; SmallString<64> Name; raw_svector_ostream OS(Name); diff --git a/lld/test/ELF/lto/Inputs/start-lib1.ll b/lld/test/ELF/lto/Inputs/start-lib1.ll new file mode 100644 index 00000000000..9f42e6afff0 --- /dev/null +++ b/lld/test/ELF/lto/Inputs/start-lib1.ll @@ -0,0 +1,8 @@ +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-linux-gnu" + +declare void @bar() + +define void @foo() { + ret void +} diff --git a/lld/test/ELF/lto/Inputs/start-lib.ll b/lld/test/ELF/lto/Inputs/start-lib2.ll index c1dbdaa07f1..68b3c836280 100644 --- a/lld/test/ELF/lto/Inputs/start-lib.ll +++ b/lld/test/ELF/lto/Inputs/start-lib2.ll @@ -1,6 +1,6 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" -define void @_bar() { +define void @bar() { ret void } diff --git a/lld/test/ELF/lto/start-lib.ll b/lld/test/ELF/lto/start-lib.ll index 1af776a9d54..ec73954a80c 100644 --- a/lld/test/ELF/lto/start-lib.ll +++ b/lld/test/ELF/lto/start-lib.ll @@ -1,15 +1,23 @@ ; REQUIRES: x86 ; ; RUN: llvm-as %s -o %t1.o -; RUN: llvm-as %p/Inputs/start-lib.ll -o %t2.o +; RUN: llvm-as %p/Inputs/start-lib1.ll -o %t2.o +; RUN: llvm-as %p/Inputs/start-lib2.ll -o %t3.o ; -; RUN: ld.lld -m elf_x86_64 -shared -o %t3 %t1.o %t2.o -; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=ADDED %s -; ADDED: Name: _bar +; RUN: ld.lld -m elf_x86_64 -shared -o %t3 %t1.o %t2.o %t3.o +; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST1 %s +; TEST1: Name: bar +; TEST1: Name: foo ; -; RUN: ld.lld -m elf_x86_64 -shared -o %t3 %t1.o --start-lib %t2.o -; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=LIB %s -; LIB-NOT: Name: _bar +; RUN: ld.lld -m elf_x86_64 -shared -o %t3 -u bar %t1.o --start-lib %t2.o %t3.o +; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST2 %s +; TEST2: Name: bar +; TEST2-NOT: Name: foo +; +; RUN: ld.lld -m elf_x86_64 -shared -o %t3 %t1.o --start-lib %t2.o %t3.o +; RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=TEST3 %s +; TEST3-NOT: Name: bar +; TEST3-NOT: Name: foo target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" |

