diff --git a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp index 76dac490f7ee..8b40816368de 100644 --- a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp +++ b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp @@ -507,7 +507,8 @@ void DwarfLinkerForBinary::copySwiftReflectionMetadata( if (auto *MO = dyn_cast(OF->getBinary())) { // Collect the swift reflection sections before emitting them. This is // done so we control the order they're emitted. - std::unordered_map + std::array, + Swift5ReflectionSectionKind::last + 1> SwiftSections; for (auto &Section : MO->sections()) { llvm::Expected NameOrErr = @@ -527,9 +528,9 @@ void DwarfLinkerForBinary::copySwiftReflectionMetadata( Swift5ReflectionSectionKind::fieldmd, Swift5ReflectionSectionKind::reflstr}; for (auto SectionKind : SectionKindsToEmit) { - if (!SwiftSections.count(SectionKind)) + if (!SwiftSections[SectionKind]) continue; - auto &Section = SwiftSections[SectionKind]; + auto &Section = *SwiftSections[SectionKind]; llvm::Expected SectionContents = Section.getContents(); if (!SectionContents) continue;