summaryrefslogtreecommitdiffstats
path: root/lld/wasm/SymbolTable.cpp
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-05-23 10:06:03 +0000
committerSam Clegg <sbc@chromium.org>2019-05-23 10:06:03 +0000
commit4bce63a0e7c5bfd0c4ee1642d0fbae89702ad490 (patch)
tree5cf0813c090726ed117ca32f252def072e1fb594 /lld/wasm/SymbolTable.cpp
parentb970fd718851c655c20a3b978b61d3ed63e7c00d (diff)
downloadbcm5719-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.cpp11
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");
OpenPOWER on IntegriCloud