Skip to content

chore(validation): Ban function pointers in SSA globals #8947

Merged
vezenovm merged 6 commits intomasterfrom
mv/validate-no-func-ptrs-in-globals
Jun 18, 2025
Merged

chore(validation): Ban function pointers in SSA globals #8947
vezenovm merged 6 commits intomasterfrom
mv/validate-no-func-ptrs-in-globals

Conversation

@vezenovm
Copy link
Contributor

@vezenovm vezenovm commented Jun 17, 2025

Description

Problem*

Resolves #8906

Summary*

  1. We now have an additional type_check_globals method we run during validation. This simply fetches the SSA type of the global value and determines whether it contains a Value::Function. If it does contain a function value it panics.
  2. The SSA printer and parser had to be updated to handle function pointers in globals. This was necessary in order to be able to use the SSA parser for the validation test.

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@vezenovm vezenovm requested a review from a team June 17, 2025 16:38
@vezenovm vezenovm requested review from a team, asterite and jfecher June 17, 2025 20:13
Copy link
Collaborator

@asterite asterite left a comment

Choose a reason for hiding this comment

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

Looks good!

@vezenovm vezenovm enabled auto-merge June 18, 2025 15:26
@vezenovm vezenovm added this pull request to the merge queue Jun 18, 2025
Merged via the queue into master with commit dfb244e Jun 18, 2025
118 checks passed
@vezenovm vezenovm deleted the mv/validate-no-func-ptrs-in-globals branch June 18, 2025 16:07
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jun 19, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix(defunctionalize): Create a placeholder function for first-class
function calls with no variants
(noir-lang/noir#8697)
fix(mem2reg): Keep store when any aliased reference is kept
(noir-lang/noir#8960)
fix(parser): let `as` have a lower precedence
(noir-lang/noir#8956)
fix: Match against all Value recursive types when checking for a
function/closure in a global
(noir-lang/noir#8967)
fix(formatter): reset indetnation after group changed it
(noir-lang/noir#8966)
chore(validation): Ban function pointers in SSA globals
(noir-lang/noir#8947)
chore: address various clippy issues
(noir-lang/noir#8942)
chore(fuzz): Consider `RangeCheckFailed` equivalent to
`ConstantDoesNotFitType` if the value matches
(noir-lang/noir#8958)
chore(fuzz): Use `nextest` to run nightly fuzz test
(noir-lang/noir#8962)
chore: minor code quality issues
(noir-lang/noir#8961)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
danielntmd pushed a commit to danielntmd/aztec-packages that referenced this pull request Jul 16, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix(defunctionalize): Create a placeholder function for first-class
function calls with no variants
(noir-lang/noir#8697)
fix(mem2reg): Keep store when any aliased reference is kept
(noir-lang/noir#8960)
fix(parser): let `as` have a lower precedence
(noir-lang/noir#8956)
fix: Match against all Value recursive types when checking for a
function/closure in a global
(noir-lang/noir#8967)
fix(formatter): reset indetnation after group changed it
(noir-lang/noir#8966)
chore(validation): Ban function pointers in SSA globals
(noir-lang/noir#8947)
chore: address various clippy issues
(noir-lang/noir#8942)
chore(fuzz): Consider `RangeCheckFailed` equivalent to
`ConstantDoesNotFitType` if the value matches
(noir-lang/noir#8958)
chore(fuzz): Use `nextest` to run nightly fuzz test
(noir-lang/noir#8962)
chore: minor code quality issues
(noir-lang/noir#8961)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SSA Validation: Do not allow function pointers in globals

3 participants