[DynInst_API:] [dyninst/dyninst] 64ac32: Inherit from derivedType


Date: Wed, 24 Nov 2021 08:57:37 -0800
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 64ac32: Inherit from derivedType
  Branch: refs/heads/thaines/improve_dwarf_enum_handling
  Home:   https://github.com/dyninst/dyninst
  Commit: 64ac32e6b6b5226d1e38c8976b58416dd12cdc4c
      https://github.com/dyninst/dyninst/commit/64ac32e6b6b5226d1e38c8976b58416dd12cdc4c
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-23 (Tue, 23 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  Inherit from derivedType


  Commit: b488ee184ad4409deb291f1b54124f5c4ef8cc95
      https://github.com/dyninst/dyninst/commit/b488ee184ad4409deb291f1b54124f5c4ef8cc95
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-23 (Tue, 23 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h
    M symtabAPI/src/Type.C
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Add parsing of underlying type


  Commit: 7a1b95efffbc40534daee6302e27e12c4b9c0403
      https://github.com/dyninst/dyninst/commit/7a1b95efffbc40534daee6302e27e12c4b9c0403
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-23 (Tue, 23 Nov 2021)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Improve enum parsing debug information


  Commit: 6193794073ed1d84a11316350e4fa37aadad0f76
      https://github.com/dyninst/dyninst/commit/6193794073ed1d84a11316350e4fa37aadad0f76
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-23 (Tue, 23 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h
    M symtabAPI/src/dwarfWalker.C

  Log Message:
  -----------
  Add support for C++ scoped enums (i.e., 'enum class')


  Commit: 24a84e8c63b1d19e141883e615b5f9fa9d40658b
      https://github.com/dyninst/dyninst/commit/24a84e8c63b1d19e141883e615b5f9fa9d40658b
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-23 (Tue, 23 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h

  Log Message:
  -----------
  Remove typeEnum::setName

This has no definition.


  Commit: 424ee549d4793031238339d93cec5091ade41c5a
      https://github.com/dyninst/dyninst/commit/424ee549d4793031238339d93cec5091ade41c5a
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-23 (Tue, 23 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  Inline default constructor


  Commit: 338b78e28b3dc6cf878e9cdccd726cc8460f75dd
      https://github.com/dyninst/dyninst/commit/338b78e28b3dc6cf878e9cdccd726cc8460f75dd
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-24 (Wed, 24 Nov 2021)

  Changed paths:
    M dyninstAPI/src/BPatch.C
    M symtabAPI/h/Type.h
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  Clean up BPatch::createEnum

This removes the unnecessary construction of a separate (thread-safe!)
container of pairs and the associated memory leaks. It also explicitly
makes the enum's underlying type a four-byte signed int. Redundant code
from the overload which computes the enum values was replaced by using
std::iota and calling the three-argument createEnum.


  Commit: e08e39d44091e72ae851ee6d778131fa31707bb4
      https://github.com/dyninst/dyninst/commit/e08e39d44091e72ae851ee6d778131fa31707bb4
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-24 (Wed, 24 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  Remove factory functions

Adding overloads for these would add more clutter than utility. We
should remove these from all of the types as the constructors should
always be used to ensure class invariants.


  Commit: 414ef7541b5cf8384a0a02e0506cbb683f9288a3
      https://github.com/dyninst/dyninst/commit/414ef7541b5cf8384a0a02e0506cbb683f9288a3
  Author: Tim Haines <thaines@xxxxxxxxxxx>
  Date:   2021-11-24 (Wed, 24 Nov 2021)

  Changed paths:
    M symtabAPI/h/Type.h
    M symtabAPI/src/Type.C

  Log Message:
  -----------
  Remove non-portable constructors

Since we're breaking ABI here, these constructors need to go. Manually
setting the size to `sizeof(int)` is non-portable as the
BPatch::createEnum may be used to modify a binary that doesn't have the
same `int` representation as the host on which Dyninst was compiled.


Compare: https://github.com/dyninst/dyninst/compare/64ac32e6b6b5%5E...414ef7541b5c
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 64ac32: Inherit from derivedType, Tim Haines <=