Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lld/COFF
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-06-29 17:27:10 +0300
committerRui Ueyama <ruiu@google.com>2015-06-29 17:27:10 +0300
commit6b79ed128ad37b807bfab76714bb93c4f876fff4 (patch)
tree17ffdf88482b2f149cde2c216654369a5e566686 /lld/COFF
parentfad30cf194cd642b3561c31c9160aa25d25a096d (diff)
COFF: Fix /export.
Mangled dllexported symbols may be defined in a library. If that's the case, we have to read a member file from the library. llvm-svn: 240947
Diffstat (limited to 'lld/COFF')
-rw-r--r--lld/COFF/SymbolTable.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp
index 4b6555210d1a..82bd17a068a4 100644
--- a/lld/COFF/SymbolTable.cpp
+++ b/lld/COFF/SymbolTable.cpp
@@ -209,6 +209,10 @@ std::pair<StringRef, Symbol *> SymbolTable::findMangled(StringRef S) {
Symbol *Sym = I.second;
if (!Name.startswith(Prefix))
continue;
+ if (auto *B = dyn_cast<Lazy>(Sym->Body)) {
+ addMemberFile(B);
+ run();
+ }
if (isa<Defined>(Sym->Body))
return std::make_pair(Name, Sym);
}