diff options
| author | Sam Clegg <sbc@chromium.org> | 2018-06-28 17:21:46 +0000 |
|---|---|---|
| committer | Sam Clegg <sbc@chromium.org> | 2018-06-28 17:21:46 +0000 |
| commit | 52b2456a95407bad5960352778b24417b4a3da29 (patch) | |
| tree | 65d35d191c577e3ca6ef61a7eaf08bc7a9351e47 /lld/wasm/Driver.cpp | |
| parent | 5ce0a08cf6cf7233b1a505957e3ad518b6e9f6e9 (diff) | |
| download | bcm5719-llvm-52b2456a95407bad5960352778b24417b4a3da29.tar.gz bcm5719-llvm-52b2456a95407bad5960352778b24417b4a3da29.zip | |
[WebAssembly] Fix --export of LTO symbols
Differential Revision: https://reviews.llvm.org/D48697
llvm-svn: 335881
Diffstat (limited to 'lld/wasm/Driver.cpp')
| -rw-r--r-- | lld/wasm/Driver.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lld/wasm/Driver.cpp b/lld/wasm/Driver.cpp index f77f20f4232..06aa437d869 100644 --- a/lld/wasm/Driver.cpp +++ b/lld/wasm/Driver.cpp @@ -439,6 +439,16 @@ void LinkerDriver::link(ArrayRef<const char *> ArgsArr) { if (!Config->Relocatable) handleWeakUndefines(); + // Handle --export. + for (auto *Arg : Args.filtered(OPT_export)) { + StringRef Name = Arg->getValue(); + Symbol *Sym = Symtab->find(Name); + if (Sym && Sym->isDefined()) + Sym->ForceExport = true; + else if (!Config->AllowUndefined) + error("symbol exported via --export not found: " + Name); + } + // Do link-time optimization if given files are LLVM bitcode files. // This compiles bitcode files into real object files. Symtab->addCombinedLTOObject(); @@ -466,16 +476,6 @@ void LinkerDriver::link(ArrayRef<const char *> ArgsArr) { if (errorCount()) return; - // Handle --export. - for (auto *Arg : Args.filtered(OPT_export)) { - StringRef Name = Arg->getValue(); - Symbol *Sym = Symtab->find(Name); - if (Sym && Sym->isDefined()) - Sym->setHidden(false); - else if (!Config->AllowUndefined) - error("symbol exported via --export not found: " + Name); - } - if (EntrySym) EntrySym->setHidden(false); |

