diff --git a/lld/MachO/OutputSegment.cpp b/lld/MachO/OutputSegment.cpp --- a/lld/MachO/OutputSegment.cpp +++ b/lld/MachO/OutputSegment.cpp @@ -90,10 +90,11 @@ // Sections are uniquely identified by their segment + section name. if (segname == segment_names::text) { return StringSwitch(osec->name) - .Case(section_names::header, -5) - .Case(section_names::text, -4) - .Case(section_names::stubs, -3) - .Case(section_names::stubHelper, -2) + .Case(section_names::header, -6) + .Case(section_names::text, -5) + .Case(section_names::stubs, -4) + .Case(section_names::stubHelper, -3) + .Case(section_names::objcStubs, -2) .Case(section_names::initOffsets, -1) .Case(section_names::unwindInfo, std::numeric_limits::max() - 1) .Case(section_names::ehFrame, std::numeric_limits::max()) diff --git a/lld/test/MachO/x86-64-objc-stubs.s b/lld/test/MachO/x86-64-objc-stubs.s --- a/lld/test/MachO/x86-64-objc-stubs.s +++ b/lld/test/MachO/x86-64-objc-stubs.s @@ -7,12 +7,12 @@ # CHECK: Contents of (__TEXT,__objc_stubs) section # CHECK-NEXT: _objc_msgSend$foo: -# CHECK-NEXT: 00000001000004b8 movq 0x1b51(%rip), %rsi -# CHECK-NEXT: 00000001000004bf jmpq *0xb3b(%rip) +# CHECK-NEXT: 00000001000004a9 movq 0x1b60(%rip), %rsi +# CHECK-NEXT: 00000001000004b0 jmpq *0xb4a(%rip) # CHECK-NEXT: _objc_msgSend$length: -# CHECK-NEXT: 00000001000004c5 movq 0x1b4c(%rip), %rsi -# CHECK-NEXT: 00000001000004cc jmpq *0xb2e(%rip) +# CHECK-NEXT: 00000001000004b6 movq 0x1b5b(%rip), %rsi +# CHECK-NEXT: 00000001000004bd jmpq *0xb3d(%rip) # CHECK-EMPTY: