Index: ELF/Target.cpp =================================================================== --- ELF/Target.cpp +++ ELF/Target.cpp @@ -841,7 +841,7 @@ write64le(Loc, Val); break; default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } @@ -1010,7 +1010,7 @@ or32be(Loc, Val & 0x3FFFFFC); break; default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } @@ -1188,7 +1188,7 @@ break; } default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } @@ -1439,7 +1439,7 @@ or32AArch64Imm(Loc, Val); break; default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } @@ -1549,7 +1549,7 @@ write32le(Loc, Val >> 32); break; default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } @@ -1859,7 +1859,7 @@ (Val & 0x00ff)); // imm8 break; default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } @@ -2307,7 +2307,7 @@ applyMipsPcReloc(Loc, Type, Val); break; default: - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type)); } } Index: test/ELF/invalid/invalid-relocation-x64.s =================================================================== --- test/ELF/invalid/invalid-relocation-x64.s +++ test/ELF/invalid/invalid-relocation-x64.s @@ -0,0 +1,3 @@ +## invalid-relocation-x64.elf contains relocation with invalid index +# RUN: not ld.lld %p/Inputs/invalid-relocation-x64.elf -o %t2 2>&1 | FileCheck %s +# CHECK: unrecognized reloc 153