[DynInst_API:] [dyninst/dyninst] c8200e: Prevent Transitive Edge Removal


Date: Wed, 28 Jan 2026 08:18:00 -0800
From: bbiiggppiigg <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] c8200e: Prevent Transitive Edge Removal
  Branch: refs/heads/bbiiggppiigg/prevent-transitive-removal
  Home:   https://github.com/dyninst/dyninst
  Commit: c8200ed22396403edc0f388d0f4630fc0aa140b9
      https://github.com/dyninst/dyninst/commit/c8200ed22396403edc0f388d0f4630fc0aa140b9
  Author: wuxx1279 <bbiiggppiigg@xxxxxxxxx>
  Date:   2026-01-28 (Wed, 28 Jan 2026)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  Prevent Transitive Edge Removal

When a basic block is pointed by more than one jump table entry,
Dyninst considers one of the jump table entry overrun and trim
the edge from the jump table, and transitively remove the
outgoing edge of the shared block. This behavior causes inconsistent
view of CFG between patchAPI and parseAPI, where a relocation block
ending with a control flow widget can have no control flow edge
because they are removed.

This PR prevents this transitive edge removal behavior.


  Commit: ff3fd5883c0c670026d7b18e2d4d8f4c40bf1b9b
      https://github.com/dyninst/dyninst/commit/ff3fd5883c0c670026d7b18e2d4d8f4c40bf1b9b
  Author: wuxx1279 <bbiiggppiigg@xxxxxxxxx>
  Date:   2026-01-28 (Wed, 28 Jan 2026)

  Changed paths:
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h

  Log Message:
  -----------
  Rename to delete_bogus_edges


  Commit: 6c92ae06587984f28b7a3b2b01c1e1d8aeba82d6
      https://github.com/dyninst/dyninst/commit/6c92ae06587984f28b7a3b2b01c1e1d8aeba82d6
  Author: wuxx1279 <bbiiggppiigg@xxxxxxxxx>
  Date:   2026-01-28 (Wed, 28 Jan 2026)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  Revert "Prevent Transitive Edge Removal"

This reverts commit ffa25ae65835a191198311627de4fddfa4fae881.


  Commit: 69c5216a317cd9a9de0240916ed0ccdefaea0719
      https://github.com/dyninst/dyninst/commit/69c5216a317cd9a9de0240916ed0ccdefaea0719
  Author: wuxx1279 <bbiiggppiigg@xxxxxxxxx>
  Date:   2026-01-28 (Wed, 28 Jan 2026)

  Changed paths:
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  Check all incoming edge before transitive removal


Compare: https://github.com/dyninst/dyninst/compare/71a5591eb93e...69c5216a317c

To unsubscribe from these emails, change your notification settings at https://github.com/dyninst/dyninst/settings/notifications
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] c8200e: Prevent Transitive Edge Removal, bbiiggppiigg <=