[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;
 }