You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The contract involves assigning a function-type variable, followed by compilation using four different types: 'origin', 'optimize', 'viaIr', and 'optimize-viaIr'. Upon executing the four sets of bytecode, inconsistencies in storage are observed.
Environment
Compiler version: 0.8.25
Target EVM version (as per compiler settings): No restrictions
The difference/"inconsistency" in the storage layout that you notice here is caused due to the fact that the IR-codegen represents internal function pointers differently from the old codegen. The old code generator uses code offsets or tags for values of internal function pointers. Whereas in the IR codegen, function pointers use internal IDs that are allocated in sequence.
Description
The contract involves assigning a function-type variable, followed by compilation using four different types: 'origin', 'optimize', 'viaIr', and 'optimize-viaIr'. Upon executing the four sets of bytecode, inconsistencies in storage are observed.
Environment
Steps to Reproduce
Four compilation modes
origin
optimize
viaIr
optimize-viaIr
Run in EVM and Get Output
origin
optimize
viaIr/optimize-viaIr
The text was updated successfully, but these errors were encountered: