diff --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp index 228c4fb03a276..ac3946b6ef46f 100644 --- a/llvm/lib/MC/MCContext.cpp +++ b/llvm/lib/MC/MCContext.cpp @@ -697,10 +697,11 @@ MCSectionCOFF *MCContext::getCOFFSection(StringRef Section, MCSymbol *COMDATSymbol = nullptr; if (!COMDATSymName.empty()) { COMDATSymbol = getOrCreateSymbol(COMDATSymName); + assert(COMDATSymbol && "COMDATSymbol is null"); COMDATSymName = COMDATSymbol->getName(); // A non-associative COMDAT is considered to define the COMDAT symbol. Check // the redefinition error. - if (Selection != COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE && COMDATSymbol && + if (Selection != COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE && COMDATSymbol->isDefined() && (!COMDATSymbol->isInSection() || cast(COMDATSymbol->getSection()).getCOMDATSymbol() !=