Fix PR18381 - print a minimal diagnostic rather than assert on unresolved .secidx...
[oota-llvm.git] / lib / MC / WinCOFFObjectWriter.cpp
index ed19b7ec69dd2519edf40e3ae0cf61ec6ac74cad..b68e69f2eb3419d28318633c4da6981f07fd028f 100644 (file)
@@ -636,6 +636,11 @@ void WinCOFFObjectWriter::RecordRelocation(const MCAssembler &Asm,
 
   const MCSymbol &Symbol = Target.getSymA()->getSymbol();
   const MCSymbol &A = Symbol.AliasedSymbol();
+  if (!Asm.hasSymbolData(A))
+    Asm.getContext().FatalError(
+        Fixup.getLoc(),
+        Twine("symbol '") + A.getName() + "' can not be undefined");
+
   MCSymbolData &A_SD = Asm.getSymbolData(A);
 
   MCSectionData const *SectionData = Fragment->getParent();