Skip to content

L4 dataflow: formal_in ports have no outgoing ddg; statement↔actual-port links absent (partial twin of the canpy port-layer gap) #80

Description

@rahlk

Twin of the codeanalyzer-python L4 port-layer audit (filed today; found during python-sdk#270 verb validation). On the cants L4 sample in python-sdk (tests/resources/cpg/ts-a4.json):

  • stmt → formal_out already emitted (3/3 formal_out ports wired) — ahead of canpy here.
  • formal_in ports: 2, 0 with outgoing ddg — parameter flow entering via param_in dead-ends at the port (the @entry → stmt var edges duplicate the role).
  • No stmt → actual_in or actual_out → stmt edges observed — argument-binding and return-value-binding at call sites are missing, so cross-callable flows_to witnesses are port-to-port segments only.

Caveat: the committed sample is small (one call site); please verify the absence classes on a larger -a 4 corpus before scoping — the canpy audit used a 758-callable corpus and the pattern there was categorical (zero port-touching ddg edges of any class).

Missing edge checklist (same as canpy, minus the return side already done):

  • def stmt → actual_in:k
  • actual_out → use stmt
  • formal_in:k → first-use stmts

Also worth checking whether TS call vertices sit on the CFG spine (canpy's are 100% cfg-orphaned).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions