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
Currently the lifter implicitly promotes a detected BNinja void type into an void* because C (and DeWolf) does not have a concept of a void datatype.
This leads to the problem of the lifter deciding when to drop a & or not, which again is not its job.
With the new array type, we can represent an void type as an constant array of bytes, e.g. unsigned char [].
This fixes the problem of "cheating" the type into an pointer.
The value will still stay the same (string of escaped hex chars).
Approach
Change globals.py _lift_void_type to return an unsigned char[] instead of an void*.
Fix possible problems at the backend for correct printing.
The text was updated successfully, but these errors were encountered:
Proposal
Currently the lifter implicitly promotes a detected BNinja void type into an void* because C (and DeWolf) does not have a concept of a void datatype.
This leads to the problem of the lifter deciding when to drop a
&
or not, which again is not its job.With the new array type, we can represent an void type as an constant array of bytes, e.g.
unsigned char []
.This fixes the problem of "cheating" the type into an pointer.
The value will still stay the same (string of escaped hex chars).
Approach
Change globals.py
_lift_void_type
to return anunsigned char[]
instead of anvoid*
.Fix possible problems at the backend for correct printing.
The text was updated successfully, but these errors were encountered: