Index: lld/MachO/ICF.cpp =================================================================== --- lld/MachO/ICF.cpp +++ lld/MachO/ICF.cpp @@ -114,7 +114,7 @@ if (sa->kind() != sb->kind()) return false; if (!isa(sa)) { - assert(isa(sa)); + assert(isa(sa) || isa(sa)); return sa == sb; } const auto *da = cast(sa); Index: lld/test/MachO/invalid/undefined-symbol.s =================================================================== --- lld/test/MachO/invalid/undefined-symbol.s +++ lld/test/MachO/invalid/undefined-symbol.s @@ -20,9 +20,17 @@ retq #--- main.s -.globl _main .text + +_anotherref: + callq _foo + movq $0, %rax + retq + +.globl _main _main: callq _foo movq $0, %rax retq + +.subsections_via_symbols