Index: lld/MachO/ConcatOutputSection.cpp =================================================================== --- lld/MachO/ConcatOutputSection.cpp +++ lld/MachO/ConcatOutputSection.cpp @@ -339,7 +339,7 @@ void ConcatOutputSection::finalizeFlags(InputSection *input) { switch (sectionType(input->getFlags())) { default /*type-unspec'ed*/: - // FIXME: Add additional logics here when supporting emitting obj files. + // FIXME: Add additional logic here when supporting emitting obj files. break; case S_4BYTE_LITERALS: case S_8BYTE_LITERALS: @@ -373,8 +373,5 @@ auto newNames = config->sectionRenameMap.find(key); if (newNames != config->sectionRenameMap.end()) return newNames->second; - auto newName = config->segmentRenameMap.find(key.first); - if (newName != config->segmentRenameMap.end()) - return std::make_pair(newName->second, key.second); return key; } Index: lld/MachO/OutputSegment.cpp =================================================================== --- lld/MachO/OutputSegment.cpp +++ lld/MachO/OutputSegment.cpp @@ -153,7 +153,16 @@ static DenseMap nameToOutputSegment; std::vector macho::outputSegments; +static StringRef maybeRenameSegment(StringRef name) { + auto newName = config->segmentRenameMap.find(name); + if (newName != config->segmentRenameMap.end()) + return newName->second; + return name; +} + OutputSegment *macho::getOrCreateOutputSegment(StringRef name) { + name = maybeRenameSegment(name); + OutputSegment *&segRef = nameToOutputSegment[name]; if (segRef) return segRef;