summaryrefslogtreecommitdiffstats
path: root/lld/wasm
diff options
context:
space:
mode:
Diffstat (limited to 'lld/wasm')
-rw-r--r--lld/wasm/InputFiles.cpp10
-rw-r--r--lld/wasm/Writer.cpp1
2 files changed, 5 insertions, 6 deletions
diff --git a/lld/wasm/InputFiles.cpp b/lld/wasm/InputFiles.cpp
index b4945469f93..33ae3325c74 100644
--- a/lld/wasm/InputFiles.cpp
+++ b/lld/wasm/InputFiles.cpp
@@ -380,22 +380,20 @@ Symbol *ObjFile::createDefined(const WasmSymbol &sym) {
case WASM_SYMBOL_TYPE_FUNCTION: {
InputFunction *func =
functions[sym.Info.ElementIndex - wasmObj->getNumImportedFunctions()];
- if (func->discarded)
- return nullptr;
if (sym.isBindingLocal())
return make<DefinedFunction>(name, flags, this, func);
+ if (func->discarded)
+ return nullptr;
return symtab->addDefinedFunction(name, flags, this, func);
}
case WASM_SYMBOL_TYPE_DATA: {
InputSegment *seg = segments[sym.Info.DataRef.Segment];
- if (seg->discarded)
- return nullptr;
-
uint32_t offset = sym.Info.DataRef.Offset;
uint32_t size = sym.Info.DataRef.Size;
-
if (sym.isBindingLocal())
return make<DefinedData>(name, flags, this, seg, offset, size);
+ if (seg->discarded)
+ return nullptr;
return symtab->addDefinedData(name, flags, this, seg, offset, size);
}
case WASM_SYMBOL_TYPE_GLOBAL: {
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp
index 23a63edee7c..4ad91ab1117 100644
--- a/lld/wasm/Writer.cpp
+++ b/lld/wasm/Writer.cpp
@@ -821,6 +821,7 @@ void Writer::calculateInitFunctions() {
assert(sym->isLive());
if (*sym->signature != WasmSignature{{}, {}})
error("invalid signature for init func: " + toString(*sym));
+ LLVM_DEBUG(dbgs() << "initFunctions: " << toString(*sym) << "\n");
initFunctions.emplace_back(WasmInitEntry{sym, f.Priority});
}
}
OpenPOWER on IntegriCloud