[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