From d80210fc905781780979fe22070f94dea8c86115 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Thu, 17 Mar 2022 20:37:39 +0100 Subject: [PATCH] [dsymutil] Store possible Swift reflection sections in an array No need for a unordered_map of enum, which is also broken in GCC before 6.1. No functionality change intended. --- llvm/tools/dsymutil/DwarfLinkerForBinary.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp index 76dac49..8b40816 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; -- 2.7.4