diff --git a/lld/MachO/ObjC.cpp b/lld/MachO/ObjC.cpp --- a/lld/MachO/ObjC.cpp +++ b/lld/MachO/ObjC.cpp @@ -37,10 +37,15 @@ strnlen(secHead.sectname, sizeof(secHead.sectname))); StringRef segname(secHead.segname, strnlen(secHead.segname, sizeof(secHead.segname))); + + const StringRef swiftSectName( + section_names::swift, + strnlen(section_names::swift, sizeof(section_names::swift))); + if ((segname == segment_names::data && sectname == section_names::objcCatList) || (segname == segment_names::text && - sectname == section_names::swift)) { + sectname.startswith(swiftSectName))) { return true; } }