[elf2] Convert if/else cascade into a covered switch. NFC.

llvm-svn: 248049
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index b784ec6..b2d7611 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -730,18 +730,26 @@
 
     uint32_t Type = RI.getType(IsMips64EL);
     uintX_t SymVA;
-    if (auto *DR = dyn_cast<DefinedRegular<ELFT>>(Body)) {
-      SymVA = getSymVA<ELFT>(DR);
-    } else if (auto *DA = dyn_cast<DefinedAbsolute<ELFT>>(Body)) {
-      SymVA = DA->Sym.st_value;
-    } else if (auto *S = dyn_cast<SharedSymbol<ELFT>>(Body)) {
+
+    switch (Body->kind()) {
+    case SymbolBody::DefinedRegularKind:
+      SymVA = getSymVA<ELFT>(cast<DefinedRegular<ELFT>>(Body));
+      break;
+    case SymbolBody::DefinedAbsoluteKind:
+      SymVA = cast<DefinedAbsolute<ELFT>>(Body)->Sym.st_value;
+      break;
+    case SymbolBody::DefinedCommonKind:
+      continue;
+    case SymbolBody::SharedKind:
       if (!relocNeedsGOT(Type))
         continue;
-      SymVA = GotSec.getEntryAddr(*S);
+      SymVA = GotSec.getEntryAddr(*Body);
       Type = R_X86_64_PC32;
-    } else {
-      // Skip unsupported for now.
+      break;
+    case SymbolBody::UndefinedKind:
       continue;
+    case SymbolBody::LazyKind:
+      llvm_unreachable("Lazy symbol reached writer");
     }
 
     relocateOne(Buf, RI, Type, BaseAddr, SymVA);