From 7804dbddccba412087a15cab8db4412939700952 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Tue, 21 May 2019 10:07:30 +0000 Subject: [WebAssembly] Add __start_/_stop_ symbols for data sections Fixes https://bugs.llvm.org/show_bug.cgi?id=41565 Differential Revision: https://reviews.llvm.org/D61876 llvm-svn: 361236 --- lld/wasm/SymbolTable.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lld/wasm/SymbolTable.cpp') 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(S, Name, Flags); + rtn->setVirtualAddress(Value); + return rtn; +} + DefinedData *SymbolTable::addSyntheticDataSymbol(StringRef Name, uint32_t Flags) { LLVM_DEBUG(dbgs() << "addSyntheticDataSymbol: " << Name << "\n"); -- cgit v1.2.3