Skip to content

Symbolic dynamic arrays of static types as arguments - #1258

Open
msooseth wants to merge 2 commits into
stack/5-perffrom
stack/6-calldata
Open

msooseth wants to merge 2 commits into
stack/5-perffrom
stack/6-calldata

Conversation

@msooseth

Copy link
Copy Markdown
Collaborator

Description

Dynamic arrays of static types such as uint16[] can be symbolic arguments, with a length of at most --max-dyn-size. They used to stop the run with an internal error.

Part 6 of 7 of splitting #1248.

Checklist

  • tested locally
  • added automated tests
  • updated the docs
  • updated the changelog

@msooseth
msooseth added this pull request to stack #1260 November 13, 2026 14:06
@msooseth
msooseth force-pushed the stack/6-calldata branch 2 times, most recently from 9631fe6 to 9915ca0 Compare November 13, 2026 14:34
msooseth and others added 2 commits November 13, 2026 20:06
A T[] argument with a static T gets a symbolic length of at most
--max-dyn-size elements, whose elements are the calldata words after the
length word, as bytes and string get theirs. The bound is reported with
the same caveat, so such a run is never a clean pass. They used to stop
the run with an internal error. The invariant test of an uncallable
target now uses bytes[], which is still unsupported.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
DynArgBounded records whether bytes/string and whether array arguments
were bounded, and the message names only those.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant