Skip to content

fix(fuzz): Avoid overflow in gen_unary#9024

Merged
aakoshh merged 1 commit intomasterfrom
af/fix-fuzz-unary-overflow
Jun 26, 2025
Merged

fix(fuzz): Avoid overflow in gen_unary#9024
aakoshh merged 1 commit intomasterfrom
af/fix-fuzz-unary-overflow

Conversation

@aakoshh
Copy link
Contributor

@aakoshh aakoshh commented Jun 26, 2025

Description

Problem*

Follow up for #9014 (comment)
Fixes one of the nightly errors in https://github.com/noir-lang/noir/actions/runs/15892240538/job/44816776896

Summary*

Changes gen_unary in the AST fuzzer go avoid UnaryOp::Minus when we want to avoid overflows.

Additional Context

 NOIR_AST_FUZZER_SEED=0x1f4683b600100000 cargo test -p noir_ast_fuzzer_fuzz comptime_vs_brillig_direct

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.

@aakoshh aakoshh requested review from a team and rkarabut June 26, 2025 08:55
@aakoshh aakoshh changed the title chore(fuzz): Avoid overflow in gen_unary fix(fuzz): Avoid overflow in gen_unary Jun 26, 2025
@aakoshh aakoshh added this pull request to the merge queue Jun 26, 2025
Merged via the queue into master with commit 301d86e Jun 26, 2025
121 of 122 checks passed
@aakoshh aakoshh deleted the af/fix-fuzz-unary-overflow branch June 26, 2025 10:38
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 1, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix: check both coordinates for point doubling
(noir-lang/noir#9039)
fix: codegen generic type arguments
(noir-lang/noir#9044)
chore: remove accidentally committed files
(noir-lang/noir#9048)
fix(fuzz): enable print in comptime_vs_brillig_direct
(noir-lang/noir#9045)
chore: move a couple of test_utils functions into a module
(noir-lang/noir#9052)
chore: bump external pinned commits
(noir-lang/noir#9046)
fix: put constraint failure after binary operations that overflow
(noir-lang/noir#9023)
fix(ssa): Remove array from cache in constant folding if it's an
argument to a `Call` (noir-lang/noir#9040)
feat: some `nargo expand` fixes related to function and method calls
(noir-lang/noir#9038)
feat(ssa_fuzzer): custom mutations
(noir-lang/noir#8988)
feat: implicit coercion of str and fmtstr into CtString
(noir-lang/noir#9032)
chore: add idempotency check to `remove_unreachable_functions`
(noir-lang/noir#9017)
chore: add logging for signature failure cases which break barretenberg
(noir-lang/noir#9030)
feat(ssa): Handle `println` in the SSA interpreter
(noir-lang/noir#9028)
chore: don't compute used globals during DIE
(noir-lang/noir#9029)
fix(ssa_fuzzer): nested conditions in loops
(noir-lang/noir#8997)
fix(fuzz): Consider `==` turning into `!=` equivalent
(noir-lang/noir#9025)
fix(fuzz): Avoid overflow in `gen_unary`
(noir-lang/noir#9024)
fix(ssa): Perform `mem2reg` before DIE
(noir-lang/noir#9018)
fix: Strange use of predicates in euclidian division
(noir-lang/noir#8934)
fix: compute the dominance frontier of the reverse cfg using the
extended cfg (noir-lang/noir#9019)
fix(fuzz): Handle overflow errors from the elaborator
(noir-lang/noir#9014)
feat: show why an assertion will always fail if it's a static string
(noir-lang/noir#9013)
chore(ssa): Add `SsaPass:and_then`
(noir-lang/noir#9016)
fix: Add a remove_unreachable_instructions SSA pass (with unreachable
terminator) (noir-lang/noir#9008)
feat: `nargo expand` for LSP
(noir-lang/noir#9012)
fix(mem2reg): Add the value in `ArraySet` to `aliased_references`
(noir-lang/noir#8976)
feat(debug): Print ssa locations along with ssa
(noir-lang/noir#9001)
chore: move `nargo expand` code to its own crate
(noir-lang/noir#9011)
chore: redo typo PR by donatik27
(noir-lang/noir#9004)
fix: recover generics when defining trait impl function
(noir-lang/noir#9009)
fix: replace public key with curve generators in inactive branches
(noir-lang/noir#8993)
fix(fuzz): Avoid overflowing binary ops in "no dynamic" mode
(noir-lang/noir#8996)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Ary Borenszweig <asterite@gmail.com>
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 2, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore(docs): Brillig VM docs
(noir-lang/noir#9078)
fix(expand): missing struct member visibility, and use "crate" instead
of "super" when possible (noir-lang/noir#9081)
fix: revert #9044 (noir-lang/noir#9080)
chore: error on infinite recursion
(noir-lang/noir#9063)
fix(fuzz): Assign to an index variable to sequence side effects
(noir-lang/noir#9056)
chore: bump cargo deny (noir-lang/noir#9077)
chore: Refactor `ConstrainEqFailed` to have `Option<String>` for `msg`
(noir-lang/noir#9065)
chore(debug): Toggle SSA locations when printing SSA
(noir-lang/noir#9066)
chore(acir_gen): Improve error message for radix decomposition
(noir-lang/noir#9068)
chore(ci): fix upload of benchmark results on master
(noir-lang/noir#9069)
fix: check both coordinates for point doubling
(noir-lang/noir#9039)
fix: codegen generic type arguments
(noir-lang/noir#9044)
chore: remove accidentally committed files
(noir-lang/noir#9048)
fix(fuzz): enable print in comptime_vs_brillig_direct
(noir-lang/noir#9045)
chore: move a couple of test_utils functions into a module
(noir-lang/noir#9052)
chore: bump external pinned commits
(noir-lang/noir#9046)
fix: put constraint failure after binary operations that overflow
(noir-lang/noir#9023)
fix(ssa): Remove array from cache in constant folding if it's an
argument to a `Call` (noir-lang/noir#9040)
feat: some `nargo expand` fixes related to function and method calls
(noir-lang/noir#9038)
feat(ssa_fuzzer): custom mutations
(noir-lang/noir#8988)
feat: implicit coercion of str and fmtstr into CtString
(noir-lang/noir#9032)
chore: add idempotency check to `remove_unreachable_functions`
(noir-lang/noir#9017)
chore: add logging for signature failure cases which break barretenberg
(noir-lang/noir#9030)
feat(ssa): Handle `println` in the SSA interpreter
(noir-lang/noir#9028)
chore: don't compute used globals during DIE
(noir-lang/noir#9029)
fix(ssa_fuzzer): nested conditions in loops
(noir-lang/noir#8997)
fix(fuzz): Consider `==` turning into `!=` equivalent
(noir-lang/noir#9025)
fix(fuzz): Avoid overflow in `gen_unary`
(noir-lang/noir#9024)
fix(ssa): Perform `mem2reg` before DIE
(noir-lang/noir#9018)
fix: Strange use of predicates in euclidian division
(noir-lang/noir#8934)
fix: compute the dominance frontier of the reverse cfg using the
extended cfg (noir-lang/noir#9019)
fix(fuzz): Handle overflow errors from the elaborator
(noir-lang/noir#9014)
feat: show why an assertion will always fail if it's a static string
(noir-lang/noir#9013)
chore(ssa): Add `SsaPass:and_then`
(noir-lang/noir#9016)
fix: Add a remove_unreachable_instructions SSA pass (with unreachable
terminator) (noir-lang/noir#9008)
feat: `nargo expand` for LSP
(noir-lang/noir#9012)
fix(mem2reg): Add the value in `ArraySet` to `aliased_references`
(noir-lang/noir#8976)
feat(debug): Print ssa locations along with ssa
(noir-lang/noir#9001)
chore: move `nargo expand` code to its own crate
(noir-lang/noir#9011)
chore: redo typo PR by donatik27
(noir-lang/noir#9004)
fix: recover generics when defining trait impl function
(noir-lang/noir#9009)
fix: replace public key with curve generators in inactive branches
(noir-lang/noir#8993)
fix(fuzz): Avoid overflowing binary ops in "no dynamic" mode
(noir-lang/noir#8996)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Ary Borenszweig <asterite@gmail.com>
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Jul 2, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore(docs): Brillig VM docs
(noir-lang/noir#9078)
fix(expand): missing struct member visibility, and use "crate" instead
of "super" when possible (noir-lang/noir#9081)
fix: revert #9044 (noir-lang/noir#9080)
chore: error on infinite recursion
(noir-lang/noir#9063)
fix(fuzz): Assign to an index variable to sequence side effects
(noir-lang/noir#9056)
chore: bump cargo deny (noir-lang/noir#9077)
chore: Refactor `ConstrainEqFailed` to have `Option<String>` for `msg`
(noir-lang/noir#9065)
chore(debug): Toggle SSA locations when printing SSA
(noir-lang/noir#9066)
chore(acir_gen): Improve error message for radix decomposition
(noir-lang/noir#9068)
chore(ci): fix upload of benchmark results on master
(noir-lang/noir#9069)
fix: check both coordinates for point doubling
(noir-lang/noir#9039)
fix: codegen generic type arguments
(noir-lang/noir#9044)
chore: remove accidentally committed files
(noir-lang/noir#9048)
fix(fuzz): enable print in comptime_vs_brillig_direct
(noir-lang/noir#9045)
chore: move a couple of test_utils functions into a module
(noir-lang/noir#9052)
chore: bump external pinned commits
(noir-lang/noir#9046)
fix: put constraint failure after binary operations that overflow
(noir-lang/noir#9023)
fix(ssa): Remove array from cache in constant folding if it's an
argument to a `Call` (noir-lang/noir#9040)
feat: some `nargo expand` fixes related to function and method calls
(noir-lang/noir#9038)
feat(ssa_fuzzer): custom mutations
(noir-lang/noir#8988)
feat: implicit coercion of str and fmtstr into CtString
(noir-lang/noir#9032)
chore: add idempotency check to `remove_unreachable_functions`
(noir-lang/noir#9017)
chore: add logging for signature failure cases which break barretenberg
(noir-lang/noir#9030)
feat(ssa): Handle `println` in the SSA interpreter
(noir-lang/noir#9028)
chore: don't compute used globals during DIE
(noir-lang/noir#9029)
fix(ssa_fuzzer): nested conditions in loops
(noir-lang/noir#8997)
fix(fuzz): Consider `==` turning into `!=` equivalent
(noir-lang/noir#9025)
fix(fuzz): Avoid overflow in `gen_unary`
(noir-lang/noir#9024)
fix(ssa): Perform `mem2reg` before DIE
(noir-lang/noir#9018)
fix: Strange use of predicates in euclidian division
(noir-lang/noir#8934)
fix: compute the dominance frontier of the reverse cfg using the
extended cfg (noir-lang/noir#9019)
fix(fuzz): Handle overflow errors from the elaborator
(noir-lang/noir#9014)
feat: show why an assertion will always fail if it's a static string
(noir-lang/noir#9013)
chore(ssa): Add `SsaPass:and_then`
(noir-lang/noir#9016)
fix: Add a remove_unreachable_instructions SSA pass (with unreachable
terminator) (noir-lang/noir#9008)
feat: `nargo expand` for LSP
(noir-lang/noir#9012)
fix(mem2reg): Add the value in `ArraySet` to `aliased_references`
(noir-lang/noir#8976)
feat(debug): Print ssa locations along with ssa
(noir-lang/noir#9001)
chore: move `nargo expand` code to its own crate
(noir-lang/noir#9011)
chore: redo typo PR by donatik27
(noir-lang/noir#9004)
fix: recover generics when defining trait impl function
(noir-lang/noir#9009)
fix: replace public key with curve generators in inactive branches
(noir-lang/noir#8993)
fix(fuzz): Avoid overflowing binary ops in "no dynamic" mode
(noir-lang/noir#8996)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Ary Borenszweig <asterite@gmail.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
chore(docs): Brillig VM docs
(noir-lang/noir#9078)
fix(expand): missing struct member visibility, and use "crate" instead
of "super" when possible (noir-lang/noir#9081)
fix: revert AztecProtocol#9044 (noir-lang/noir#9080)
chore: error on infinite recursion
(noir-lang/noir#9063)
fix(fuzz): Assign to an index variable to sequence side effects
(noir-lang/noir#9056)
chore: bump cargo deny (noir-lang/noir#9077)
chore: Refactor `ConstrainEqFailed` to have `Option<String>` for `msg`
(noir-lang/noir#9065)
chore(debug): Toggle SSA locations when printing SSA
(noir-lang/noir#9066)
chore(acir_gen): Improve error message for radix decomposition
(noir-lang/noir#9068)
chore(ci): fix upload of benchmark results on master
(noir-lang/noir#9069)
fix: check both coordinates for point doubling
(noir-lang/noir#9039)
fix: codegen generic type arguments
(noir-lang/noir#9044)
chore: remove accidentally committed files
(noir-lang/noir#9048)
fix(fuzz): enable print in comptime_vs_brillig_direct
(noir-lang/noir#9045)
chore: move a couple of test_utils functions into a module
(noir-lang/noir#9052)
chore: bump external pinned commits
(noir-lang/noir#9046)
fix: put constraint failure after binary operations that overflow
(noir-lang/noir#9023)
fix(ssa): Remove array from cache in constant folding if it's an
argument to a `Call` (noir-lang/noir#9040)
feat: some `nargo expand` fixes related to function and method calls
(noir-lang/noir#9038)
feat(ssa_fuzzer): custom mutations
(noir-lang/noir#8988)
feat: implicit coercion of str and fmtstr into CtString
(noir-lang/noir#9032)
chore: add idempotency check to `remove_unreachable_functions`
(noir-lang/noir#9017)
chore: add logging for signature failure cases which break barretenberg
(noir-lang/noir#9030)
feat(ssa): Handle `println` in the SSA interpreter
(noir-lang/noir#9028)
chore: don't compute used globals during DIE
(noir-lang/noir#9029)
fix(ssa_fuzzer): nested conditions in loops
(noir-lang/noir#8997)
fix(fuzz): Consider `==` turning into `!=` equivalent
(noir-lang/noir#9025)
fix(fuzz): Avoid overflow in `gen_unary`
(noir-lang/noir#9024)
fix(ssa): Perform `mem2reg` before DIE
(noir-lang/noir#9018)
fix: Strange use of predicates in euclidian division
(noir-lang/noir#8934)
fix: compute the dominance frontier of the reverse cfg using the
extended cfg (noir-lang/noir#9019)
fix(fuzz): Handle overflow errors from the elaborator
(noir-lang/noir#9014)
feat: show why an assertion will always fail if it's a static string
(noir-lang/noir#9013)
chore(ssa): Add `SsaPass:and_then`
(noir-lang/noir#9016)
fix: Add a remove_unreachable_instructions SSA pass (with unreachable
terminator) (noir-lang/noir#9008)
feat: `nargo expand` for LSP
(noir-lang/noir#9012)
fix(mem2reg): Add the value in `ArraySet` to `aliased_references`
(noir-lang/noir#8976)
feat(debug): Print ssa locations along with ssa
(noir-lang/noir#9001)
chore: move `nargo expand` code to its own crate
(noir-lang/noir#9011)
chore: redo typo PR by donatik27
(noir-lang/noir#9004)
fix: recover generics when defining trait impl function
(noir-lang/noir#9009)
fix: replace public key with curve generators in inactive branches
(noir-lang/noir#8993)
fix(fuzz): Avoid overflowing binary ops in "no dynamic" mode
(noir-lang/noir#8996)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Ary Borenszweig <asterite@gmail.com>
AztecBot added a commit to AztecProtocol/barretenberg that referenced this pull request Dec 3, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore(docs): Brillig VM docs
(noir-lang/noir#9078)
fix(expand): missing struct member visibility, and use "crate" instead
of "super" when possible (noir-lang/noir#9081)
fix: revert #9044 (noir-lang/noir#9080)
chore: error on infinite recursion
(noir-lang/noir#9063)
fix(fuzz): Assign to an index variable to sequence side effects
(noir-lang/noir#9056)
chore: bump cargo deny (noir-lang/noir#9077)
chore: Refactor `ConstrainEqFailed` to have `Option<String>` for `msg`
(noir-lang/noir#9065)
chore(debug): Toggle SSA locations when printing SSA
(noir-lang/noir#9066)
chore(acir_gen): Improve error message for radix decomposition
(noir-lang/noir#9068)
chore(ci): fix upload of benchmark results on master
(noir-lang/noir#9069)
fix: check both coordinates for point doubling
(noir-lang/noir#9039)
fix: codegen generic type arguments
(noir-lang/noir#9044)
chore: remove accidentally committed files
(noir-lang/noir#9048)
fix(fuzz): enable print in comptime_vs_brillig_direct
(noir-lang/noir#9045)
chore: move a couple of test_utils functions into a module
(noir-lang/noir#9052)
chore: bump external pinned commits
(noir-lang/noir#9046)
fix: put constraint failure after binary operations that overflow
(noir-lang/noir#9023)
fix(ssa): Remove array from cache in constant folding if it's an
argument to a `Call` (noir-lang/noir#9040)
feat: some `nargo expand` fixes related to function and method calls
(noir-lang/noir#9038)
feat(ssa_fuzzer): custom mutations
(noir-lang/noir#8988)
feat: implicit coercion of str and fmtstr into CtString
(noir-lang/noir#9032)
chore: add idempotency check to `remove_unreachable_functions`
(noir-lang/noir#9017)
chore: add logging for signature failure cases which break barretenberg
(noir-lang/noir#9030)
feat(ssa): Handle `println` in the SSA interpreter
(noir-lang/noir#9028)
chore: don't compute used globals during DIE
(noir-lang/noir#9029)
fix(ssa_fuzzer): nested conditions in loops
(noir-lang/noir#8997)
fix(fuzz): Consider `==` turning into `!=` equivalent
(noir-lang/noir#9025)
fix(fuzz): Avoid overflow in `gen_unary`
(noir-lang/noir#9024)
fix(ssa): Perform `mem2reg` before DIE
(noir-lang/noir#9018)
fix: Strange use of predicates in euclidian division
(noir-lang/noir#8934)
fix: compute the dominance frontier of the reverse cfg using the
extended cfg (noir-lang/noir#9019)
fix(fuzz): Handle overflow errors from the elaborator
(noir-lang/noir#9014)
feat: show why an assertion will always fail if it's a static string
(noir-lang/noir#9013)
chore(ssa): Add `SsaPass:and_then`
(noir-lang/noir#9016)
fix: Add a remove_unreachable_instructions SSA pass (with unreachable
terminator) (noir-lang/noir#9008)
feat: `nargo expand` for LSP
(noir-lang/noir#9012)
fix(mem2reg): Add the value in `ArraySet` to `aliased_references`
(noir-lang/noir#8976)
feat(debug): Print ssa locations along with ssa
(noir-lang/noir#9001)
chore: move `nargo expand` code to its own crate
(noir-lang/noir#9011)
chore: redo typo PR by donatik27
(noir-lang/noir#9004)
fix: recover generics when defining trait impl function
(noir-lang/noir#9009)
fix: replace public key with curve generators in inactive branches
(noir-lang/noir#8993)
fix(fuzz): Avoid overflowing binary ops in "no dynamic" mode
(noir-lang/noir#8996)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
Co-authored-by: Ary Borenszweig <asterite@gmail.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.

2 participants