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 loops while expression should be (wLoc08_35 < 32) (or (ax_24 + 0x01 < 32)) but is instead rewritten as (ax_24 < 65505). This happens in ExpressionSimplifier.cs:358.
(Sidenote: wLoc08_35 was defined as ax_24 + 0x01. It would have been amazing if this was taken into consideration when propagating values. (I think that wLoc08_35 should be treated as a real variable instead of a temporary, but I guess that would require a lot more work when deciding what to keep and what was temporary which would probably also result in a lot of incorrect guesses...). But that's not the point of this issue.)
(Also, there's another issue with the output, but I'm creating a separate issue for that, related to array indexing)
The loops
while
expression should be(wLoc08_35 < 32)
(or(ax_24 + 0x01 < 32)
) but is instead rewritten as(ax_24 < 65505)
. This happens in ExpressionSimplifier.cs:358.(Sidenote: wLoc08_35 was defined as
ax_24 + 0x01
. It would have been amazing if this was taken into consideration when propagating values. (I think that wLoc08_35 should be treated as a real variable instead of a temporary, but I guess that would require a lot more work when deciding what to keep and what was temporary which would probably also result in a lot of incorrect guesses...). But that's not the point of this issue.)(Also, there's another issue with the output, but I'm creating a separate issue for that, related to array indexing)
Sample binary (and .dcproject):
RekoIssueArrayIndex-comp.zip
Incorrect output:
Sample program:
Sample assembly:
The text was updated successfully, but these errors were encountered: