[PATCH] D27973: [ELF] - Do not call fatal() in Target.cpp, call error() instead.
Rafael Avila de Espindola via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 20 15:35:20 PST 2016
LGTM
George Rimar via Phabricator <reviews at reviews.llvm.org> writes:
> grimar updated this revision to Diff 82112.
> grimar added a comment.
>
> - Addressed review comments.
>
>
> https://reviews.llvm.org/D27973
>
> Files:
> ELF/Target.cpp
> test/ELF/invalid/Inputs/invalid-relocation-x64.elf
> test/ELF/invalid/invalid-relocation-x64.s
>
> 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
> 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<E, 32, 0>(Loc, Type, Val);
> break;
> default:
> - fatal(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type));
> + error(getErrorLocation(Loc) + "unrecognized reloc " + Twine(Type));
> }
> }
>
More information about the llvm-commits
mailing list