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,31 @@ +## invalid-relocation-x64.elf contains relocations with invalid numeric id. +## Next yaml code was used to create initial binary. After that it +## was modified with hex-editor to replace known relocations with fake ones, +## that have 0x98 and 0x98 ids. +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_FREEBSD + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + - Name: .rela.text + Type: SHT_RELA + Link: .symtab + Info: .text + Relocations: + - Offset: 0x0000000000000000 + Symbol: '' + Type: R_X86_64_NONE + - Offset: 0x0000000000000000 + Symbol: '' + Type: R_X86_64_NONE + + +# RUN: not ld.lld %p/Inputs/invalid-relocation-x64.elf -o %t2 2>&1 | FileCheck %s +# CHECK: unrecognized reloc 152 +# CHECK: unrecognized reloc 153