diff options
| author | Sam Clegg <sbc@chromium.org> | 2019-05-23 10:06:03 +0000 |
|---|---|---|
| committer | Sam Clegg <sbc@chromium.org> | 2019-05-23 10:06:03 +0000 |
| commit | 4bce63a0e7c5bfd0c4ee1642d0fbae89702ad490 (patch) | |
| tree | 5cf0813c090726ed117ca32f252def072e1fb594 /lld/wasm/SymbolTable.cpp | |
| parent | b970fd718851c655c20a3b978b61d3ed63e7c00d (diff) | |
| download | bcm5719-llvm-4bce63a0e7c5bfd0c4ee1642d0fbae89702ad490.tar.gz bcm5719-llvm-4bce63a0e7c5bfd0c4ee1642d0fbae89702ad490.zip | |
Reland: [WebAssembly] Add __start_/_stop_ symbols for data sections
This is a reland of rL361235.
Fixes https://bugs.llvm.org/show_bug.cgi?id=41565
Differential Revision: https://reviews.llvm.org/D61876
llvm-svn: 361476
Diffstat (limited to 'lld/wasm/SymbolTable.cpp')
| -rw-r--r-- | lld/wasm/SymbolTable.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lld/wasm/SymbolTable.cpp b/lld/wasm/SymbolTable.cpp index 1a16b6390ba..ce1aa5132ba 100644 --- a/lld/wasm/SymbolTable.cpp +++ b/lld/wasm/SymbolTable.cpp @@ -198,6 +198,17 @@ DefinedFunction *SymbolTable::addSyntheticFunction(StringRef Name, Flags, nullptr, Function); } +DefinedData *SymbolTable::addOptionalDataSymbol(StringRef Name, uint32_t Value, + uint32_t Flags) { + Symbol *S = find(Name); + if (!S || S->isDefined()) + return nullptr; + LLVM_DEBUG(dbgs() << "addOptionalDataSymbol: " << Name << "\n"); + auto *rtn = replaceSymbol<DefinedData>(S, Name, Flags); + rtn->setVirtualAddress(Value); + return rtn; +} + DefinedData *SymbolTable::addSyntheticDataSymbol(StringRef Name, uint32_t Flags) { LLVM_DEBUG(dbgs() << "addSyntheticDataSymbol: " << Name << "\n"); |

