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
KEVM currently doesn't handle constructor calls with symbolic parameters.
The problem is that the parameters are appended to the init code, and #computeValidJumpDests will start branching on them to collect all JUMPDEST locations. The branching leads to a path-explosion problem and eventually produces the following error message: Error internalising cterm: [PredicateExpected ....
Notice that the parameters are just data and not executable bytecode.
The init code will utilize a CODECOPY operation to copy the data from the init code to the memory.
Hence, looking for JUMPDESTS in this data is not needed.
We solved this issue by replacing the ahead-of-time computation of the valid jump destinations with a just-in-time algorithm. See: #2112
We also needed the following lemma to lookup opcodes in partially symbolic init code:
rule [bytes-concat-left-lookup]:
(A:Bytes +Bytes B:Bytes) [I] => A [I] requires 0 <=Int I andBool I <Int lengthBytes(A) [simplification]
The text was updated successfully, but these errors were encountered:
KEVM currently doesn't handle constructor calls with symbolic parameters.
The problem is that the parameters are appended to the init code, and
#computeValidJumpDests
will start branching on them to collect all JUMPDEST locations. The branching leads to a path-explosion problem and eventually produces the following error message:Error internalising cterm: [PredicateExpected ...
.Notice that the parameters are just data and not executable bytecode.
The init code will utilize a CODECOPY operation to copy the data from the init code to the memory.
Hence, looking for JUMPDESTS in this data is not needed.
We solved this issue by replacing the ahead-of-time computation of the valid jump destinations with a just-in-time algorithm. See: #2112
We also needed the following lemma to lookup opcodes in partially symbolic init code:
The text was updated successfully, but these errors were encountered: