Skip to content

Unified: Instantiate and expose public SSA api. - #22869

Draft
aschackmull wants to merge 1 commit into
github:mainfrom
aschackmull:unified/ssa-public
Draft

aschackmull wants to merge 1 commit into
github:mainfrom
aschackmull:unified/ssa-public

Conversation

@aschackmull

Copy link
Copy Markdown
Contributor

This adds the default hierarchy of SSA classes, which will be needed by subsequent instantiations of other libraries (Guards, etc.)

@aschackmull aschackmull added the no-change-note-required This PR does not need a change note label Oct 22, 2026
@aschackmull
aschackmull requested a review from a team as a code owner October 22, 2026 08:06
Copilot AI max review requested due to automatic review settings October 22, 2026 08:06
Comment thread unified/ql/lib/codeql/unified/internal/dataflow/LocalSsa.qll Fixed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved compilation and SSA mapping issues prevent reliable use of the new public API.

3 open issues
What changed in this PR

Exposes Unified’s default static single assignment (SSA) hierarchy for future libraries such as Guards.

Changes:

  • Instantiate public SSA classes using Unified expressions, parameters, and variable writes.
  • Export the Ssa API through unified.qll.
  • Add expression accessors for control-flow nodes and basic blocks.
File Description
unified/​ql/​lib/​unified.qll Exports the public SSA API.
unified/​ql/​lib/​codeql/​unified/​internal/​FacadeAst.qll Adds expression control-flow and basic-block accessors.
unified/​ql/​lib/​codeql/​unified/​internal/​dataflow/​LocalSsa.qll Implements the public SSA adapter and instantiates its hierarchy.

Review effort: Max

}

module SsaPublic {
module Ssa = MakeSsa<SsaInput>;
}

module SsaPublic {
module Ssa = MakeSsa<SsaInput>;
Comment on lines +56 to +58
exists(VariableDeclaration decl |
writeAccess = decl.getPattern() and result = decl.getValue()
)
@aschackmull
aschackmull marked this pull request as draft October 22, 2026 10:37

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-change-note-required This PR does not need a change note Unified

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants