diff --git a/lld/wasm/SymbolTable.cpp b/lld/wasm/SymbolTable.cpp --- a/lld/wasm/SymbolTable.cpp +++ b/lld/wasm/SymbolTable.cpp @@ -406,7 +406,7 @@ template static void setImportAttributes(T *existing, Optional importName, Optional importModule, - InputFile *file) { + uint32_t flags, InputFile *file) { if (importName) { if (!existing->importName) existing->importName = importName; @@ -428,7 +428,7 @@ } // Update symbol binding, if the existing symbols is weak - uint32_t binding = existing->flags & WASM_SYMBOL_BINDING_MASK; + uint32_t binding = flags & WASM_SYMBOL_BINDING_MASK; if (existing->isWeak() && binding != WASM_SYMBOL_BINDING_WEAK) { existing->flags = (existing->flags & ~WASM_SYMBOL_BINDING_MASK) | binding; } @@ -480,7 +480,8 @@ replaceSym(); } if (existingUndefined) - setImportAttributes(existingUndefined, importName, importModule, file); + setImportAttributes(existingUndefined, importName, importModule, flags, + file); } return s;