[all-commits] [llvm/llvm-project] 4dd5f1: [yaml2obj] - Add `ELFYAML::YAMLIntUInt` to fix how...

Georgii Rymar via All-commits all-commits at lists.llvm.org
Tue Mar 17 04:22:36 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 4dd5f1ca9b2b7ae50849efeb7cf3ecfbdb1cf67a
      https://github.com/llvm/llvm-project/commit/4dd5f1ca9b2b7ae50849efeb7cf3ecfbdb1cf67a
  Author: Georgii Rymar <grimar at accesssoftek.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M llvm/include/llvm/ObjectYAML/ELFYAML.h
    M llvm/lib/ObjectYAML/ELFYAML.cpp
    M llvm/test/tools/yaml2obj/ELF/relocation-addend.yaml

  Log Message:
  -----------
  [yaml2obj] - Add `ELFYAML::YAMLIntUInt` to fix how we parse a relocation `Addend` key.

This patch makes `Relocation::Addend` to be `ELFYAML::YAMLIntUInt` and not `int64_t`.

`ELFYAML::YAMLIntUInt` it is a new type and it has the following benefits/features:

1) For an 64-bit object any hex/decimal addends
   in the range [INT64_MIN, UINT64_MAX] is accepted.
2) For an 32-bit object any hex/decimal addends
   in range [INT32_MIN, UINT32_MAX] is accepted.
3) Negative hex numbers like -0xffffffff are not accepted.
4) It is printed as decimal. I.e. obj2yaml will print
   something like "Addend: 125", this matches the current behavior.

This fixes all FIXMEs in `relocation-addend.yaml`.

Differential revision: https://reviews.llvm.org/D75527




More information about the All-commits mailing list