[WebAssembly] Simplify FunctionSymbol::get/set/hasFunctionType. NFC.
Differential Revision: https://reviews.llvm.org/D43416
llvm-svn: 325415
diff --git a/lld/wasm/SymbolTable.cpp b/lld/wasm/SymbolTable.cpp
index a42cce7..c30a9d5 100644
--- a/lld/wasm/SymbolTable.cpp
+++ b/lld/wasm/SymbolTable.cpp
@@ -99,20 +99,21 @@
if (!ExistingFunc || !Config->CheckSignatures)
return;
+ const WasmSignature *OldSig = ExistingFunc->getFunctionType();
+
// Skip the signature check if the existing function has no signature (e.g.
// if it is an undefined symbol generated by --undefined command line flag).
- if (!ExistingFunc->hasFunctionType())
+ if (OldSig == nullptr)
return;
DEBUG(dbgs() << "checkSymbolTypes: " << ExistingFunc->getName() << "\n");
assert(NewSig);
- const WasmSignature &OldSig = ExistingFunc->getFunctionType();
- if (*NewSig == OldSig)
+ if (*NewSig == *OldSig)
return;
error("function signature mismatch: " + ExistingFunc->getName() +
- "\n>>> defined as " + toString(OldSig) + " in " +
+ "\n>>> defined as " + toString(*OldSig) + " in " +
toString(ExistingFunc->getFile()) + "\n>>> defined as " +
toString(*NewSig) + " in " + F.getName());
}
@@ -188,9 +189,11 @@
if (CheckTypes)
checkSymbolTypes(*S, *F, IsFunction, Chunk);
if (IsFunction)
- replaceSymbol<DefinedFunction>(S, Name, Flags, F, Chunk);
+ replaceSymbol<DefinedFunction>(S, Name, Flags, F,
+ cast<InputFunction>(Chunk));
else
- replaceSymbol<DefinedGlobal>(S, Name, Flags, F, Chunk, Address);
+ replaceSymbol<DefinedGlobal>(S, Name, Flags, F, cast<InputSegment>(Chunk),
+ Address);
}
return S;
}