<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/101419>101419</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [LTO, MachO] Tests fail when `-objc_relative_method_lists`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lld,
            lld:MachO
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          DataCorrupted
      </td>
    </tr>
</table>

<pre>
    The following tests fail when `-objc_relative_method_lists` are added. (commit bb4aeb66ab4f399)

```
MachO/objc-category-conflicts.s
MachO/objc-category-merging-complete-test.s
MachO/objc-category-merging-erase-objc-name-test.s
MachO/objc-category-merging-minimal.s
```

All cases involve an invalid pointer cast at certain point.
For example, in `objc-category-conflicts.s` gets the following error:

```
RUN: at line 15: /home/peterrong/llvm-project/build/bin/llvm-mc -filetype=obj -triple=x86_64-apple-macos11.0 -I /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/klass-with-no-rodata.s -o /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/klass-with-no-rodata.o
+ /home/peterrong/llvm-project/build/bin/llvm-mc -filetype=obj -triple=x86_64-apple-macos11.0 -I /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/klass-with-no-rodata.s -o /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/klass-with-no-rodata.o
RUN: at line 16: ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /home/peterrong/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -dylib -lobjc /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/klass.o -o /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/libklass.dylib
+ ld64.lld -arch x86_64 -platform_version macos 11.0 11.0 -syslibroot /home/peterrong/llvm-project/lld/test/MachO/Inputs/MacOSX.sdk -lSystem -fatal_warnings -dylib -lobjc /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/klass.o -o /home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.tmp/libklass.dylib
ld64.lld: /home/peterrong/llvm-project/llvm/include/llvm/ADT/PointerUnion.h:156: T llvm::PointerUnion<PTs>::get() const [with T = lld::macho::Symbol*; PTs = {lld::macho::Symbol*, lld::macho::InputSection*}]: Assertion `isa<T>(*this) && "Invalid accessor called"' failed.
/home/peterrong/llvm-project/build/tools/lld/test/MachO/Output/objc-category-conflicts.s.script: line 19: 378103 Aborted
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsV1GP46YT_zTkBWHZYDvJQx68yT_SSf92T92c1LcI44nNHgYLxtnLt6-wE2272q52X-5a9aSIMDDA_OY34BkZgm4twIYUd6TYLeSInfObnUS5dd6PA0KzqF1z2Rw6oCdnjHvStqUIAQM9SW3oUweWkjJlrn5URw9Goj7DsQfsXHM0OmAgZUqlByqbBpqEEr5Sru810rrOJdRlKev8JNZrwtck3ZG0urZlev1N4i9SdfeE7-M5TEmE1vkLU86ejFYYkvCWWg--1bZlyvWDAQQWEbxvCXgZYELHrOw_srLXVvfS3JRf4JnbyhiqZIBAtT07cwYqbexKoxs6OG0RfFRAKpEq8Ci1nceTeYO98xS-yQiL8C3VExl_76MypS1goPgXPsF754mo3nD_b19-JaKKVhhtgWZFlAjfd64HwvcDYNzEtoTvjTn3bPDuERQSvq9HbZr4r-1tsleUnbQBvAxAxM7Vj5Sh1xGD2H1blccyZ3IYDLBeKheyLEkp-_Sx49A5E6bpSYIQJ2-E3Y84jPhWNCXYD9_9QML3X40MgT1p7Jh1zLtGokwCZe4fY4y7xge_-8n_f5j_lw9CGSXTlHliTEOZ9KqjM5WUDUbiyfn-eAYftLN0opVOvM7khkswuvbO4ftwvorrkx1GDPPA_cPvSWi-UmYeLgGhp-wkUZrjk_RW2zZQ1lyMrikz0Qk_zLmJ-0HUGl3PBkxueL7SPxn8NzN4Y-_dH-coEr7XVpmxgeeBancgfP95TkC-WO1s0hFRZcV0zQ90UhMVEdWfdYjYfj4EIv43T7WAhK8IX1PlbEBKirv4ltADJWJHZzOJqHqpOjd3Hy597QzhFRF39PMhTIpkefe2Lt--utkUTA-gMFrGK7LckWIXza9CAB9HY66kgyRie4hGR1sr7HSIJhNeEl5SwvmnazomlYIQXMzHjIGGcE74csqCoUluN-g7hkFQXg84PbvTC7yOXbFcZamgVe08QvNqKrdoNqJZi7VcwCZbcp6XosiLRbeBVb3iuVyv8nWTFfVpVS_T5alZ5lIInq3kQm94yvN0KTLO0yIvEsVTodb1SoEoy3wpSZ5CL7VJIuTE-XahQxhhk6VZnq0XRtZgwlRtcD7B5oRvr31xS6d5LEX8ZvJaPbaB5OlURzxvihrNVLT8_3Af2Z8XFjt6-Ghhshi92XSIQ4gxw_eE71uN3VgnyvXP1-EFgxOoSN0V13nD_wgAAP__a8RjCw">